From edc31791bf129475945201b970ea1bb327dc8d25 Mon Sep 17 00:00:00 2001 From: Jon de Andres Date: Thu, 2 Jun 2016 17:44:14 +0200 Subject: [PATCH] Pass correct options to Item.build_with Fix #479 --- lib/rollbar.rb | 11 +++++++++-- spec/rollbar/item_spec.rb | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/lib/rollbar.rb b/lib/rollbar.rb index a3532fc8..8fdfd95b 100644 --- a/lib/rollbar.rb +++ b/lib/rollbar.rb @@ -221,7 +221,10 @@ def process_item(item) def process_from_async_handler(payload) payload = Rollbar::JSON.load(payload) if payload.is_a?(String) - item = Item.build_with(payload) + item = Item.build_with(payload, + :notifier => self, + :configuration => configuration, + :logger => logger) Rollbar.silenced do begin @@ -263,7 +266,11 @@ def send_failsafe(message, exception) } begin - schedule_item(Item.build_with(failsafe_payload)) + item = Item.build_with(failsafe_payload, + :notifier => self, + :configuration => configuration, + :logger => logger) + schedule_item(item) rescue => e log_error "[Rollbar] Error sending failsafe : #{e}" end diff --git a/spec/rollbar/item_spec.rb b/spec/rollbar/item_spec.rb index 14ca58a9..9dd69faf 100644 --- a/spec/rollbar/item_spec.rb +++ b/spec/rollbar/item_spec.rb @@ -631,5 +631,26 @@ expect(json).to be_kind_of(String) end end + + context 'with too large payload', :fixture => :payload do + let(:payload_fixture) { 'payloads/sample.trace.json' } + let(:item) do + Rollbar::Item.build_with(payload, + :notifier => notifier, + :configuration => configuration, + :logger => logger) + end + + before do + allow(Rollbar::Truncation).to receive(:truncate?).and_return(true) + end + + it 'calls Notifier#send_failsafe and logs the error' do + expect(notifier).to receive(:send_failsafe) + expect(logger).to receive(:error) + + item.dump + end + end end end