使用 OmniAuth(使用 omniauth_crowd),如果用户未提交正确的用户名和密码,我希望将用户重定向回登录页面。它在生产中运行良好,但我在测试它时遇到了烦人的问题。
为了模拟 OmniAuth 提供程序,我使用了 OmniAuth 插件作者推荐的以下代码:
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:someProvider] = :invalid_credentials
visit_page @page
上面的代码会自动(即无需输入用户名和密码)将 Capybara 重定向到session#failure
. 我的session#failure
重定向到login_path
.
因此我最终陷入了一个循环:
redirected more than 5 times, check for infinite redirects. (Capybara::InfiniteRedirectError)
对于我的情况,最好的解决方法是什么?