Тестирование перенаправления после входа в Devise - PullRequest
10 голосов
/ 27 октября 2010

Я следовал рекомендациям на страницах Devise Github для этого:

http://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

Теперь это прекрасно работает, но как бы вы проверили, что у вас сейчас такое поведение?

Ответы [ 3 ]

4 голосов
/ 28 октября 2010

Ну, есть два способа проверить его, один на уровне модуля, написав тесты в контроллерах, которые наследуют контроллер приложения. Код будет выглядеть примерно так:

it "should redirect to page_x after logged in" do
  sign_in :user_role, @user 
  set_devise_mapping(:user_role) 
  get :new 
  response.should redirect_to(user_roles_dashboard_path) 
end

Для огурца вам, вероятно, следует написать шаг для входа в систему и подтвердить, что вы находитесь на ожидаемой странице входа в систему.

3 голосов
/ 27 октября 2010

Хм ... Я думаю, что вы должны написать собственные интеграционные тесты, чтобы проверить поведение. Нет необходимости в модульных или функциональных тестах, если вы не связались с кодом Devise.

0 голосов
/ 20 февраля 2019

Если вы используете мини-тест, это будет примерно так:

require 'test_helper'

class SessionsControllerTest < ActionDispatch::IntegrationTest
  include Devise::Test::IntegrationHelpers

  test "admins should be redirected to comments_url" do
    sign_in(users(:one))
    post user_session_url
    assert_redirected_to comments_url
  end

  test "No admins should be redirected to root_path" do
    sign_in(users(:two))
    post user_session_url
    assert_redirected_to root_url
  end
end
...