demarches-normaliennes/spec/controllers/application_controller/error_handling_spec.rb
2024-08-22 09:26:48 +02:00

48 lines
1.3 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# frozen_string_literal: true
RSpec.describe ApplicationController::ErrorHandling, type: :controller do
controller(ActionController::Base) do
include ApplicationController::ErrorHandling
def invalid_authenticity_token
raise ActionController::InvalidAuthenticityToken
end
end
before do
routes.draw { post 'invalid_authenticity_token' => 'anonymous#invalid_authenticity_token' }
end
describe 'handling ActionController::InvalidAuthenticityToken' do
let(:request_cookies) do
{ 'some_cookie': true }
end
before do
cookies.update(request_cookies)
allow(controller).to receive(:rand).and_return(0)
end
it 'logs the error' do
allow(Sentry).to receive(:capture_message)
post :invalid_authenticity_token rescue nil
expect(Sentry).to have_received(:capture_message)
end
it 'forwards the error upwards' do
expect { post :invalid_authenticity_token }.to raise_error(ActionController::InvalidAuthenticityToken)
end
context 'when Safari retries a POST request without cookies' do
let(:request_cookies) do
{}
end
it 'doesnt log the error' do
allow(Sentry).to receive(:capture_message)
post :invalid_authenticity_token rescue nil
expect(Sentry).not_to have_received(:capture_message)
end
end
end
end