summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb')
-rw-r--r--spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb36
1 files changed, 34 insertions, 2 deletions
diff --git a/spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb b/spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb
index 82ca84f0697..698758a13fd 100644
--- a/spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware/client_metrics_spec.rb
@@ -3,11 +3,12 @@
require 'spec_helper'
RSpec.describe Gitlab::SidekiqMiddleware::ClientMetrics do
+ let(:enqueued_jobs_metric) { double('enqueued jobs metric', increment: true) }
+
shared_examples "a metrics middleware" do
context "with mocked prometheus" do
- let(:enqueued_jobs_metric) { double('enqueued jobs metric', increment: true) }
-
before do
+ labels[:scheduling] = 'immediate'
allow(Gitlab::Metrics).to receive(:counter).with(described_class::ENQUEUED, anything).and_return(enqueued_jobs_metric)
end
@@ -32,4 +33,35 @@ RSpec.describe Gitlab::SidekiqMiddleware::ClientMetrics do
end
it_behaves_like 'metrics middleware with worker attribution'
+
+ context 'when mounted' do
+ before do
+ stub_const('TestWorker', Class.new)
+ TestWorker.class_eval do
+ include Sidekiq::Worker
+
+ def perform(*args)
+ end
+ end
+
+ allow(Gitlab::Metrics).to receive(:counter).and_return(Gitlab::Metrics::NullMetric.instance)
+ allow(Gitlab::Metrics).to receive(:counter).with(described_class::ENQUEUED, anything).and_return(enqueued_jobs_metric)
+ end
+
+ context 'when scheduling jobs for immediate execution' do
+ it 'increments enqueued jobs metric with scheduling label set to immediate' do
+ expect(enqueued_jobs_metric).to receive(:increment).with(a_hash_including(scheduling: 'immediate'), 1)
+
+ Sidekiq::Testing.inline! { TestWorker.perform_async }
+ end
+ end
+
+ context 'when scheduling jobs for future execution' do
+ it 'increments enqueued jobs metric with scheduling label set to delayed' do
+ expect(enqueued_jobs_metric).to receive(:increment).with(a_hash_including(scheduling: 'delayed'), 1)
+
+ Sidekiq::Testing.inline! { TestWorker.perform_in(1.second) }
+ end
+ end
+ end
end