Sha256: 40081fd22db0e02f3a1137b7688280f9cb6a8108e15728318c1b1ff270855fb1

Contents?: true

Size: 1.97 KB

Versions: 3

Compression:

Stored size: 1.97 KB

Contents

require 'spec_helper'
require 'rollbar/truncation/frames_strategy'

describe Rollbar::Truncation::MinBodyStrategy do
  describe '.call', :fixture => :payload do
    let(:message) { 'a' * 1_000 }

    context 'with trace key ' do
      let(:payload_fixture) { 'payloads/sample.trace.json' }
      let!(:frames) { payload['data']['body']['trace']['frames'].clone }

      before do
        payload['data']['body']['trace']['exception']['message'] = message
      end

      it 'truncates the exception message and frames array' do
        result = Rollbar::JSON.load(described_class.call(payload))

        trace = result['data']['body']['trace']
        expect(trace['frames']).to have(2).items
        expect(trace['exception']['message']).to be_eql('a' * 255)
      end
    end

    context 'with trace_chain key ' do
      let(:payload_fixture) { 'payloads/sample.trace_chain.json' }
      let!(:frames1) { payload['data']['body']['trace_chain'][0]['frames'].clone }
      let!(:frames2) { payload['data']['body']['trace_chain'][1]['frames'].clone }

      before do
        payload['data']['body']['trace_chain'][0]['exception']['message'] = message
        payload['data']['body']['trace_chain'][1]['exception']['message'] = message
      end

      it 'truncates the exception message and frames array' do
        result = Rollbar::JSON.load(described_class.call(payload))

        traces = result['data']['body']['trace_chain']
        expect(traces[0]['frames']).to have(2).items
        expect(traces[0]['exception']['message']).to be_eql('a' * 255)

        expect(traces[1]['frames']).to have(2).items
        expect(traces[1]['exception']['message']).to be_eql('a' * 255)
      end
    end

    context 'with a message payload' do
      let(:payload_fixture) { 'payloads/sample.trace_chain.json' }

      it "doesn't truncate anything and returns same payload" do
        result = Rollbar::JSON.load(described_class.call(payload))

        expect(result).to be_eql(payload)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rollbar-2.0.2 spec/rollbar/truncation/min_body_strategy_spec.rb
rollbar-2.0.1 spec/rollbar/truncation/min_body_strategy_spec.rb
rollbar-2.0.0 spec/rollbar/truncation/min_body_strategy_spec.rb