私はしばらくカピバラを使っていますが、魔術は初めてです。Capybaraの:js => true機能なしで仕様を実行すると正常にログインできますが、仕様で:js => trueを指定しようとすると、ユーザー名/パスワードが見つからないという非常に奇妙な問題があります。
認証マクロは次のとおりです。
module AuthenticationMacros
def sign_in
user = FactoryGirl.create(:user)
user.activate!
visit new_sessions_path
fill_in 'Email Address', :with => user.email
fill_in 'Password', :with => 'foobar'
click_button 'Sign In'
user
end
end
これは、次のような仕様で呼び出されます。
feature "project setup" do
include AuthenticationMacros
background do
sign_in
end
scenario "creating a project" do
"my spec here"
end
上記のコードは正常に機能します。ただし、シナリオの仕様を(この場合)から変更すると
scenario "adding questions to a project" do
に
scenario "adding questions to a project", :js => true do
'不正なユーザー名/パスワード'の組み合わせでログインが失敗します。文字通り、唯一の変更は:js=>trueです。デフォルトのcapybarajavascriptドライバーを使用しています。(Firefoxをロードします)
ここで何が起こっているのでしょうか?私は完全に困惑しています。私はCapybara2.0.1、Sorcery0.7.13を使用しています。サインインページにはjavascriptがなく、[サインイン]をクリックする前のsave_and_open_pageは、ユーザー名/パスワードフィールドに正しい詳細が入力されていることを確認します。どんな提案も本当にありがたいです-私は途方に暮れています。