OmniAuthコールバックが本番環境で正しく動作しているように見えますが、ログインリンクをテストする機能が正しいページに移動しても、現在のパスは更新されません。機能テスト中にOmniAuthコールバックがページの場所を更新しないのはなぜですか?
セットアップ:
- 工夫4.2.0
- OmniAuth 1.3.1
- Railsの5.0.0.1
- カピバラ2.10.2
レプリケーション:
でJSを持つフィーチャグループの例:true、テストにOmniAuthを入れるモード:私は視覚的にページを閲覧すると
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:facebook] = auth_hash
がテスト
context 'signing in' do
it 'should operate correctly' do
visit root_path
expect(page).to have_content(I18n.t 'home.index.title')
expect(page).to have_content(I18n.t 'home.index.text')
page.find('.google-login').click
wait_for_ajax
# Fails here with:
# expected "https://stackoverflow.com/users/auth/google_oauth2" to equal "/journal"
expect(page).to have_current_path journal_root_path
end
end
を構築し、正しいページがレンダリングされています。何が起こっていますか?これはカピバラやセレンの問題ではないようです。ブラウザは正しく(間違った)パスをキャプチャします。
あなたにたくさんありがとうございました! –