Как проверить перенаправление, когда ActionController :: InvalidAuthenticityToken - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть rescue_from ActionController :: InvalidAuthenticityToken, с:: invalid_token в моем ApplicationController.

invalid_token перенаправляет пользователя на красивый вид с более четким сообщением конечному пользователю.

Я пытался написать тест, которыйимитирует истечение сеанса с помощью гема Timecop, но я не могу заставить его работать.

Я пробовал это решение для имитации сеанса с истекшим сроком ссылка

      user = create(:user, :with_company)

      visit new_user_session_path

      within "#sign_in_form" do
        fill_in :user_email, with: user.email
        fill_in :user_password, with: user.password

        click_button I18n.t("devise.sessions.new.sign_in")
      end

      assert page.has_link?(I18n.t("navbar.sign_out"))

      assert_current_path "/"

      # new_date = Time.zone.now + 1.month
      click_link I18n.t("breadcrumbs.orders")

      click_link I18n.t("orders.index.new_door")

      Timecop.travel 5.days.ago do  #session dosent get expired
        click_link I18n.t("pdf_button.title")
        assert_redirect_to "/invalid_token" #this brokes, it says it expects another path
      end
    end

Я пытаюсь смоделировать истекший сеанс с гемом Timecop в моем тесте, чтобы вызвать InvalidAuthenticityToken, чтобы я мог видеть, что мое перенаправление работает.

Заранее спасибо!

1 Ответ

0 голосов
/ 26 сентября 2019

Вы пробовали со временем from_now, как они использовали в примере?

Примерно так: Timecop.travel 5.days.from_now

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...