У меня есть 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, чтобы я мог видеть, что мое перенаправление работает.
Заранее спасибо!