如何在ActionController :: InvalidAuthenticityToken时测试重定向

问题描述 投票:0回答:1

我在ApplicationController中有一个来自ActionController :: InvalidAuthenticityToken,带有::invalid_token的急救包。

invalid_token

会将用户重定向到漂亮的视图,并向最终用户发送更清晰的消息。

我已经尝试编写一个测试,以在Timecop gem的帮助下模拟会话到期,但是我无法使其正常工作。

我已经尝试过此解决方案来模拟过期的会话a link

      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 gem模拟过期的会话以触发InvalidAuthenticityToken,这样我可以看到我的重定向有效。

提前感谢!

我有一个来自ActionController :: InvalidAuthenticityToken的rescue_,在我的ApplicationController中带有::invalid_token。 invalid_token会将用户重定向到漂亮的视图,并向...

ruby-on-rails capybara minitest
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.