RSpec(Capybara)でログイン状態が保持されない
発生している問題
RSpec(Capybara)でログイン状態時のテストを実行したいのですが、うまくいきません。
let(:user){FactoryBot.create(:user, :a)}
before do
visit login_path
fill_in 'メールアドレス', with: user.email
fill_in 'パスワード', with: user.password
click_button 'ログイン'
end
it '新規投稿画面が表示される' do
visit new_post_path
expect(page).to have_content '新規投稿'
end
上記の場合なぜかログイン状態が保持されず、ログインしないと新規投稿に遷移できない機能にしているためテストが通りません。
しかし、
it '新規投稿画面が表示される' do
click_link '新規投稿'
expect(page).to have_content '新規投稿'
end
上記の場合だとユーザページにある新規投稿リンクから遷移してテストがパスします。
なぜなのか理由がわからずにいます。投稿機能のテストはこのように遷移できるのですが、他の機能のテストの際にはユーザページにリンクを貼っていないので、visit を用いてテストが上手くパスするようにしたいです。
ご教授お願いいたします!🙇♂️
使用環境
capybara (3.37.1)
rspec-rails (5.1.2)
deviceは用いていません!
1