Capybaraを使用してアプリの統合テストを作成しようとしています。アプリが正しい出力を表示するには、ログインしているユーザーが特定の役割を持っている必要があります。そして、それは私が立ち往生しているところです。
現在、ログインのモックは次のようになっています。私spec_helper.rb
が持っている:
# Trying to configure Capybara to play nice with Omniauth
Capybara.default_host = 'http://example.org'
# Enable omniauth testing mode
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:google] = OmniAuth::AuthHash.new({
:provider => 'google',
:uid => '1337',
:info => {
'name' => 'JonnieHallman',
'email' => 'jon@test.com'
}
})
次に、テスト自体で、ユーザーをログインさせるには、次のようにします。
before do
visit root_path
click_link "Log In"
end
ここでsave_and_open_page
、ユーザーは実際にログインしているが、役割がないために誤った出力を表示していることがわかります。
このモックユーザーに役割を与えるにはどうすればよいですか?いつそうすればいいですか?(明らかに、ログインする前に-しかし、現在の構造では、ユーザーはログイン前のデータベースに存在していなかったと思います。そうですか?)
どんなヒントでも大歓迎です。