Skip to content

Commit d39772b

Browse files
committed
Add tests for stats collection in collect block
1 parent 87fc076 commit d39772b

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

spec/yabeda/sidekiq_spec.rb

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,53 @@
119119
)
120120
end
121121
end
122+
123+
describe "collection of Sidekiq statistics" do
124+
before do
125+
allow(Sidekiq::Stats).to receive(:new).and_return(
126+
OpenStruct.new(
127+
processes_size: 1,
128+
workers_size: 10,
129+
retry_size: 1,
130+
scheduled_size: 2,
131+
dead_size: 3,
132+
processed: 42,
133+
failed: 13,
134+
queues: { "default" => 5, "mailers" => 4 },
135+
),
136+
)
137+
allow(Sidekiq::Queue).to receive(:all).and_return(
138+
[
139+
OpenStruct.new({ name: "default", latency: 0.5 }),
140+
OpenStruct.new({ name: "mailers", latency: 0 }),
141+
],
142+
)
143+
end
144+
145+
it "collects queue latencies" do
146+
Yabeda.collectors.each(&:call)
147+
148+
expect(Yabeda.sidekiq.queue_latency.values).to include(
149+
{ queue: "default" } => 0.5,
150+
{ queue: "mailers" } => 0.0,
151+
)
152+
end
153+
154+
it "collects queue sizes" do
155+
Yabeda.collectors.each(&:call)
156+
157+
expect(Yabeda.sidekiq.jobs_waiting_count.values).to include(
158+
{ queue: "default" } => 5,
159+
{ queue: "mailers" } => 4,
160+
)
161+
end
162+
163+
it "collects named queues stats", :aggregate_failures do
164+
Yabeda.collectors.each(&:call)
165+
166+
expect(Yabeda.sidekiq.jobs_retry_count.values).to eq({ {} => 1 })
167+
expect(Yabeda.sidekiq.jobs_dead_count.values).to eq({ {} => 3 })
168+
expect(Yabeda.sidekiq.jobs_scheduled_count.values).to eq({ {} => 2 })
169+
end
170+
end
122171
end

0 commit comments

Comments
 (0)