From 803c025755cbf4351a0c86afaa8807d1e4a48f24 Mon Sep 17 00:00:00 2001 From: Beth Skurrie Date: Fri, 15 Jun 2018 13:02:03 +1000 Subject: [PATCH] feat: move $.message to $.error.message in error response body --- lib/pact_broker/api/resources/error_handler.rb | 4 ++-- spec/lib/pact_broker/api/resources/error_handler_spec.rb | 8 ++++++++ spec/lib/pact_broker/api/resources/pacticipant_spec.rb | 7 +------ spec/lib/pact_broker/api/resources/tag_spec.rb | 7 +------ 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/lib/pact_broker/api/resources/error_handler.rb b/lib/pact_broker/api/resources/error_handler.rb index 3090fde0a..ffabaccb3 100644 --- a/lib/pact_broker/api/resources/error_handler.rb +++ b/lib/pact_broker/api/resources/error_handler.rb @@ -11,9 +11,9 @@ class ErrorHandler def self.call e, request, response logger.error e logger.error e.backtrace - response_body = { :message => e.message } + response_body = { error: { :message => e.message } } if PactBroker.configuration.show_backtrace_in_error_response? - response_body[:backtrace] = e.backtrace + response_body[:error][:backtrace] = e.backtrace end response.body = response_body.to_json report(e, request) if reportable?(e) diff --git a/spec/lib/pact_broker/api/resources/error_handler_spec.rb b/spec/lib/pact_broker/api/resources/error_handler_spec.rb index 08ad423c2..cf1ee03ab 100644 --- a/spec/lib/pact_broker/api/resources/error_handler_spec.rb +++ b/spec/lib/pact_broker/api/resources/error_handler_spec.rb @@ -40,6 +40,14 @@ module Resources end end + it "creates a json error response body" do + expect(response).to receive(:body=) do | body | + expect(JSON.parse(body)['error']).to include 'message' => 'test error' + end + subject + end + + context "when show_backtrace_in_error_response? is true" do before do allow(PactBroker.configuration).to receive(:show_backtrace_in_error_response?).and_return(true) diff --git a/spec/lib/pact_broker/api/resources/pacticipant_spec.rb b/spec/lib/pact_broker/api/resources/pacticipant_spec.rb index 40cf5da9d..7bab437d2 100644 --- a/spec/lib/pact_broker/api/resources/pacticipant_spec.rb +++ b/spec/lib/pact_broker/api/resources/pacticipant_spec.rb @@ -55,12 +55,7 @@ module Resources it "returns an error message" do subject - expect(response_body[:message]).to eq "An error" - end - - it "returns the backtrace" do - subject - expect(response_body[:backtrace]).to be_instance_of(Array) + expect(response_body[:error][:message]).to eq "An error" end end end diff --git a/spec/lib/pact_broker/api/resources/tag_spec.rb b/spec/lib/pact_broker/api/resources/tag_spec.rb index 608cbd955..5801aac1f 100644 --- a/spec/lib/pact_broker/api/resources/tag_spec.rb +++ b/spec/lib/pact_broker/api/resources/tag_spec.rb @@ -63,12 +63,7 @@ module Resources it "returns an error message" do subject - expect(response_body[:message]).to eq "An error" - end - - it "returns the backtrace" do - subject - expect(response_body[:backtrace]).to be_instance_of(Array) + expect(response_body[:error][:message]).to eq "An error" end end end