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/tasks/gitlab/sidekiq_rake_spec.rb')
-rw-r--r--spec/tasks/gitlab/sidekiq_rake_spec.rb42
1 files changed, 34 insertions, 8 deletions
diff --git a/spec/tasks/gitlab/sidekiq_rake_spec.rb b/spec/tasks/gitlab/sidekiq_rake_spec.rb
index 75f904389e2..0e5111c90a1 100644
--- a/spec/tasks/gitlab/sidekiq_rake_spec.rb
+++ b/spec/tasks/gitlab/sidekiq_rake_spec.rb
@@ -9,7 +9,10 @@ RSpec.describe 'sidekiq.rake', :aggregate_failures, :silence_stdout do
stub_warn_user_is_not_gitlab
end
+ let(:migrator) { ::Gitlab::SidekiqMigrateJobs.new(mappings, logger: Logger.new($stdout)) }
+
shared_examples 'migration rake task' do
+ let(:mappings) { {} }
it 'runs the migrator with a mapping of workers to queues' do
test_routes = [
['urgency=high', 'default'],
@@ -17,20 +20,17 @@ RSpec.describe 'sidekiq.rake', :aggregate_failures, :silence_stdout do
]
test_router = ::Gitlab::SidekiqConfig::WorkerRouter.new(test_routes)
- migrator = ::Gitlab::SidekiqMigrateJobs.new(sidekiq_set, logger: Logger.new($stdout))
allow(::Gitlab::SidekiqConfig::WorkerRouter)
.to receive(:global).and_return(test_router)
expect(::Gitlab::SidekiqMigrateJobs)
- .to receive(:new).with(sidekiq_set, logger: an_instance_of(Logger)).and_return(migrator)
+ .to receive(:new).with(a_hash_including('PostReceive' => 'default',
+ 'MergeWorker' => 'default',
+ 'DeleteDiffFilesWorker' => 'delete_diff_files'),
+ logger: an_instance_of(Logger)).and_return(migrator)
- expect(migrator)
- .to receive(:execute)
- .with(a_hash_including('PostReceive' => 'default',
- 'MergeWorker' => 'default',
- 'DeleteDiffFilesWorker' => 'delete_diff_files'))
- .and_call_original
+ expect(migrator).to receive(:migrate_set).with(sidekiq_set).and_call_original
run_rake_task("gitlab:sidekiq:migrate_jobs:#{sidekiq_set}")
@@ -50,4 +50,30 @@ RSpec.describe 'sidekiq.rake', :aggregate_failures, :silence_stdout do
it_behaves_like 'migration rake task'
end
+
+ describe 'gitlab:sidekiq:migrate_jobs:queued rake task' do
+ let(:mappings) { { 'PostReceive' => 'default' } }
+
+ it 'runs the migrator with a mapping of workers to queues' do
+ test_routes = [
+ ['*', 'default']
+ ]
+
+ test_router = ::Gitlab::SidekiqConfig::WorkerRouter.new(test_routes)
+
+ allow(::Gitlab::SidekiqConfig::WorkerRouter)
+ .to receive(:global).and_return(test_router)
+
+ expect(::Gitlab::SidekiqMigrateJobs)
+ .to receive(:new).with(a_hash_including('PostReceive' => 'default',
+ 'MergeWorker' => 'default'),
+ logger: an_instance_of(Logger)).and_return(migrator)
+
+ expect(migrator).to receive(:migrate_queues).and_call_original
+
+ run_rake_task("gitlab:sidekiq:migrate_jobs:queued")
+
+ expect($stdout.string).to include('List of queues based on routing rules: ["default"]')
+ end
+ end
end