Skip to content

Commit 04750fa

Browse files
committed
Add basic specs
1 parent 4e505f6 commit 04750fa

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

sentry-sidekiq/spec/sentry/sidekiq/sentry_context_middleware_spec.rb

+34
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,27 @@
6363
expect(transaction.contexts.dig(:trace, :origin)).to eq('auto.queue.sidekiq')
6464
end
6565

66+
it "adds a queue.process spans" do
67+
execute_worker(processor, HappyWorker)
68+
execute_worker(processor, HappyWorker, jid: '123456')
69+
70+
expect(transport.events.count).to eq(2)
71+
72+
transaction = transport.events[0]
73+
expect(transaction).not_to be_nil
74+
expect(transaction.spans.count).to eq(1)
75+
expect(transaction.spans[0][:data]['messaging.message.id']).to eq('123123') # Default defined in #execute_worker
76+
expect(transaction.spans[0][:data]['messaging.destination.name']).to eq('default')
77+
expect(transaction.spans[0][:data]['messaging.message.retry.count']).to eq(0)
78+
79+
transaction = transport.events[1]
80+
expect(transaction).not_to be_nil
81+
expect(transaction.spans.count).to eq(1)
82+
expect(transaction.spans[0][:data]['messaging.message.id']).to eq('123456') # Explicitly set above.
83+
expect(transaction.spans[0][:data]['messaging.destination.name']).to eq('default')
84+
expect(transaction.spans[0][:data]['messaging.message.retry.count']).to eq(0)
85+
end
86+
6687
context "with trace_propagation_headers" do
6788
let(:parent_transaction) { Sentry.start_transaction(op: "sidekiq") }
6889

@@ -155,5 +176,18 @@
155176
expect(second_headers["sentry-trace"]).to eq(transaction.to_sentry_trace)
156177
expect(second_headers["baggage"]).to eq(transaction.to_baggage)
157178
end
179+
180+
it "has a queue.publish span" do
181+
message_id = client.push('queue' => 'default', 'class' => HappyWorker, 'args' => [])
182+
183+
transaction.finish
184+
185+
expect(transport.events.count).to eq(1)
186+
event = transport.events.last
187+
expect(event.spans.count).to eq(1)
188+
expect(event.spans[0][:op]).to eq("queue.publish")
189+
expect(event.spans[0][:data]['messaging.message.id']).to eq(message_id)
190+
expect(event.spans[0][:data]['messaging.destination.name']).to eq('default')
191+
end
158192
end
159193
end

sentry-sidekiq/spec/spec_helper.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,9 @@ def execute_worker(processor, klass, **options)
232232
options[k.to_sym] = v
233233
end
234234

235-
msg = Sidekiq.dump_json(created_at: Time.now.to_f, jid: "123123", class: klass, args: [], **options)
235+
jid = options.delete(:jid) || "123123"
236+
237+
msg = Sidekiq.dump_json(created_at: Time.now.to_f, enqueued_at: Time.now.to_f, jid: jid, class: klass, args: [], **options)
236238
work = Sidekiq::BasicFetch::UnitOfWork.new('queue:default', msg)
237239
process_work(processor, work)
238240
end

0 commit comments

Comments
 (0)