# frozen_string_literal: true describe 'Errors handling', js: false do let(:procedure) { create(:procedure) } scenario 'not found returns 404' do without_detailed_exceptions do visit '/nonexistent-path' end expect(page).to have_http_status(:not_found) expect(page).to have_content('Page non trouvée') end scenario 'bug renders dynamic 500 page' do procedure.revisions.destroy_all # break procedure without_detailed_exceptions do visit commencer_path(path: procedure.path) end expect(page).to have_http_status(:internal_server_error) expect(page).to have_content('une erreur est survenue') expect(page).to have_content('Se connecter') expect(page).to have_link('Contactez-nous') end scenario 'fatal error fallback to static 500 page' do without_detailed_exceptions do Rails.application.env_config["action_dispatch.cookies"] = "will fail" visit commencer_path(path: procedure.path) ensure Rails.application.env_config.delete("action_dispatch.cookies") end expect(page).to have_content('une erreur est survenue') expect(page).not_to have_content('Se connecter') expect(page).to have_link('Contactez-nous') end end