Sha256: 4900919a7a2010ef8bb29974f909b9fb875b94412e515393ee1bada0fd0c9046

Contents?: true

Size: 1.38 KB

Versions: 8

Compression:

Stored size: 1.38 KB

Contents

require 'spec_helper'

describe Freddy::TraceCarrier do
  subject(:carrier) { described_class.new(properties) }

  context 'when adding trace information' do
    let(:properties) { {x: 'y'} }
    let(:key_name) { 'some-key' }
    let(:key_value) { 'some-key' }

    it 'adds a header with x-trace- prefix' do
      carrier[key_name] = key_value
      expect(properties[:headers]["x-trace-#{key_name}"]).to eq(key_value)
    end
  end

  context 'when extracting trace information' do
    let(:key_name) { 'some-key' }
    let(:serialized_key_name) { "x-trace-#{key_name}" }
    let(:key_value) { 'some-key' }

    let(:properties) do
      double(headers: {serialized_key_name => key_value})
    end

    it 'extracts a header with x-trace- prefix' do
      expect(carrier[key_name]).to eq(key_value)
    end
  end

  describe '#each' do
    context 'when headers are present' do
      let(:properties) do
        double(
          headers: {
            "x-trace-key1" => "value1",
            "x-trace-key2" => "value2",
            "other-key" => "value3"
          }
        )
      end

      it 'iterates over keys starting with x-trace- prefix' do
        expect(carrier.each.count).to eq(2)
      end
    end

    context 'when no headers' do
      let(:properties) { double(headers: nil) }

      it 'iterates over an empty list' do
        expect(carrier.each.count).to eq(0)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
freddy-1.4.1 spec/freddy/trace_carrier_spec.rb
freddy-1.4.0 spec/freddy/trace_carrier_spec.rb
freddy-1.3.3 spec/freddy/trace_carrier_spec.rb
freddy-jruby-1.3.2 spec/freddy/trace_carrier_spec.rb
freddy-1.3.2 spec/freddy/trace_carrier_spec.rb
freddy-1.3.1 spec/freddy/trace_carrier_spec.rb
freddy-1.3.0 spec/freddy/trace_carrier_spec.rb
freddy-1.2.0 spec/freddy/trace_carrier_spec.rb