diff --git a/app/controllers/administrateurs/attestation_template_v2s_controller.rb b/app/controllers/administrateurs/attestation_template_v2s_controller.rb index 808763bc9..f5ace97c7 100644 --- a/app/controllers/administrateurs/attestation_template_v2s_controller.rb +++ b/app/controllers/administrateurs/attestation_template_v2s_controller.rb @@ -34,9 +34,13 @@ module Administrateurs } }.to_json - result = Typhoeus.post(WEASYPRINT_URL, headers:, body:) + response = Typhoeus.post(WEASYPRINT_URL, headers:, body:) - send_data(result.body, filename: 'attestation.pdf', type: 'application/pdf', disposition: 'inline') + if response.success? + send_data(response.body, filename: 'attestation.pdf', type: 'application/pdf', disposition: 'inline') + else + raise StandardError.new("PDF Generation failed: #{response.return_code} #{response.status_message}") + end end end end diff --git a/spec/system/administrateurs/procedure_attestation_template_spec.rb b/spec/system/administrateurs/procedure_attestation_template_spec.rb index 0877d9b0f..bf7dbf1ff 100644 --- a/spec/system/administrateurs/procedure_attestation_template_spec.rb +++ b/spec/system/administrateurs/procedure_attestation_template_spec.rb @@ -65,7 +65,12 @@ describe 'As an administrateur, I want to manage the procedure’s attestation', end context 'Update attestation v2' do - before { Flipper.enable(:attestation_v2) } + before do + Flipper.enable(:attestation_v2) + + response = Typhoeus::Response.new(code: 200, body: 'Hello world') + Typhoeus.stub(WEASYPRINT_URL).and_return(response) + end scenario do visit admin_procedure_path(procedure)