Sha256: 43051d3c3c694ef438286bd7bfdddfe073ee5a112ff63712ea5b0fd36e7464d0

Contents?: true

Size: 1.67 KB

Versions: 1

Compression:

Stored size: 1.67 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 = symbolize_recursive(MultiJson.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 = symbolize_recursive(MultiJson.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
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rollbar-1.2.11 spec/rollbar/truncation/min_body_strategy_spec.rb