Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/sidekiq_config_spec.rb')
-rw-r--r--spec/lib/gitlab/sidekiq_config_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/lib/gitlab/sidekiq_config_spec.rb b/spec/lib/gitlab/sidekiq_config_spec.rb
index d216b9d0c18..d2a53185acd 100644
--- a/spec/lib/gitlab/sidekiq_config_spec.rb
+++ b/spec/lib/gitlab/sidekiq_config_spec.rb
@@ -122,4 +122,43 @@ RSpec.describe Gitlab::SidekiqConfig do
expect(described_class.sidekiq_queues_yml_outdated?).to be(false)
end
end
+
+ describe '.worker_queue_mappings' do
+ it 'returns the worker class => queue mappings based on the current routing configuration' do
+ test_routes = [
+ ['urgency=high', 'default'],
+ ['*', nil]
+ ]
+
+ allow(::Gitlab::SidekiqConfig::WorkerRouter)
+ .to receive(:global).and_return(::Gitlab::SidekiqConfig::WorkerRouter.new(test_routes))
+
+ expect(described_class.worker_queue_mappings).to include('MergeWorker' => 'default',
+ 'Ci::BuildFinishedWorker' => 'default',
+ 'BackgroundMigrationWorker' => 'background_migration',
+ 'AdminEmailWorker' => 'cronjob:admin_email')
+ end
+ end
+
+ describe '.current_worker_queue_mappings' do
+ it 'returns worker queue mappings that have queues in the current Sidekiq options' do
+ test_routes = [
+ ['urgency=high', 'default'],
+ ['*', nil]
+ ]
+
+ allow(::Gitlab::SidekiqConfig::WorkerRouter)
+ .to receive(:global).and_return(::Gitlab::SidekiqConfig::WorkerRouter.new(test_routes))
+
+ allow(Sidekiq).to receive(:options).and_return(queues: %w[default background_migration])
+
+ mappings = described_class.current_worker_queue_mappings
+
+ expect(mappings).to include('MergeWorker' => 'default',
+ 'Ci::BuildFinishedWorker' => 'default',
+ 'BackgroundMigrationWorker' => 'background_migration')
+
+ expect(mappings).not_to include('AdminEmailWorker' => 'cronjob:admin_email')
+ end
+ end
end