File: remote_reporter_spec.rb

package info (click to toggle)
ruby-jaeger-client 1.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 624 kB
  • sloc: ruby: 3,381; makefile: 6; sh: 4
file content (50 lines) | stat: -rw-r--r-- 1,355 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
require 'spec_helper'

RSpec.describe Jaeger::Reporters::RemoteReporter do
  let(:reporter) { described_class.new(sender: sender, flush_interval: 1) }
  let(:sender) { spy }
  let(:operation_name) { 'op-name' }

  before { allow(Thread).to receive(:new) }

  describe '#report' do
    let(:context) do
      Jaeger::SpanContext.new(
        trace_id: Jaeger::TraceId.generate,
        span_id: Jaeger::TraceId.generate,
        flags: flags
      )
    end
    let(:span) { Jaeger::Span.new(context, operation_name, reporter) }

    context 'when span has debug mode enabled' do
      let(:flags) { Jaeger::SpanContext::Flags::DEBUG }

      it 'buffers the span' do
        reporter.report(span)
        reporter.flush
        expect(sender).to have_received(:send_spans).once
      end
    end

    context 'when span is sampled' do
      let(:flags) { Jaeger::SpanContext::Flags::SAMPLED }

      it 'buffers the span' do
        reporter.report(span)
        reporter.flush
        expect(sender).to have_received(:send_spans).once
      end
    end

    context 'when span does not have debug mode nor is sampled' do
      let(:flags) { Jaeger::SpanContext::Flags::NONE }

      it 'does not buffer the span' do
        reporter.report(span)
        reporter.flush
        expect(sender).not_to have_received(:send_spans)
      end
    end
  end
end