У меня есть тест:
test "should not allow access" do
get :new
assert_redirected_to new_user_session_url
end
Я использую devise для аутентификации.
У меня есть два представления для каждого из моих действий: одно нормальное и одно для мобильных устройств, поэтому, прежде чем я использовал обычное представление по умолчанию (sign_in.html.erb) - тест прошел, но когда я добавил мобильное представление (sign_in.mobile.erb) я получил следующее сообщение об ошибке.
Ожидаемый ответ будет перенаправлением на http://test.host/users/sign_in, но был перенаправлением на http://test.host/users/sign_in.mobile
Итак, с точки зрения тестирования клиента - логика работает нормально, например. в случае, если пользователь не аутентифицирован, он будет перенаправлен на новый путь сеанса (new_user_session_url). Это работает и для мобильных устройств (мобильный клиент будет перенаправлен на мобильное представление страницы входа в систему), но по некоторым причинам тест не пройден, если клиент является мобильным устройством, а мой контроллер перенаправлен на мобильное представление.
Мой вопрос, как исправить тест? Я пробовал:
assert_redirected_to new_user_session_path
assert_redirected_to :controller => "devise/session", :action => "new"
но безуспешно и то же сообщение об ошибке в случае, если клиент является мобильным устройством, и перенаправление происходит в мобильном представлении.
Есть мысли?