JS を使用するテストを行う前に、ユーザーにサインインする必要があります。サインイン ページは機能します (このテストを除く)。
require 'spec_helper'
require 'capybara/poltergeist'
include Capybara::DSL
Capybara.javascript_driver = :poltergeist
describe "Application", js: true do
describe "when logged in", js: true do
let(:user) { FactoryGirl.create(:user) }
before do
visit signin_path
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Sign in"
end
it "can authenticate user" do
User.all.first.authenticate(user.password).email.should == user.email
end
end
end
問題は、「サインイン」ボタンをクリックすると、「無効なユーザー/パスワード」の組み合わせでページに戻ることです (ユーザーがデータベースに存在しないかのように)。問題は、どうやら使用が実際にデータベース内にあり、パスワードが正しいことです (「ユーザーを認証できる」というテストに合格します)。
「サインイン」ボタンをクリックする前にスクリーンショットを撮りましたが、フィールドは正しく入力されています。before ブロック内にユーザーを作成しようとしましたが、うまくいきませんでした。
サインイン ページには特別なものはなく、javascript も何もありません。サーバーへの通常のフォームの投稿。
何か案は?