diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-28 21:10:23 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-28 21:10:23 +0300 |
commit | a66948df0c3fda7764965f8cf4c9c99226c0d44d (patch) | |
tree | 36d0534d5c03a4ccbbd6da091ba32b96ca27a51b /spec/migrations | |
parent | 1d9f78b3a4ecd36806890e80e513242d0fdf7b6e (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/migrations')
-rw-r--r-- | spec/migrations/reschedule_delete_orphaned_deployments_spec.rb (renamed from spec/migrations/schedule_delete_orphaned_deployments_spec.rb) | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/spec/migrations/schedule_delete_orphaned_deployments_spec.rb b/spec/migrations/reschedule_delete_orphaned_deployments_spec.rb index 618958a3d90..eb91602388c 100644 --- a/spec/migrations/schedule_delete_orphaned_deployments_spec.rb +++ b/spec/migrations/reschedule_delete_orphaned_deployments_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDeleteOrphanedDeployments, :sidekiq, schema: 20210617161348 do +RSpec.describe RescheduleDeleteOrphanedDeployments, :sidekiq, schema: 20210617161348 do let!(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } let!(:project) { table(:projects).create!(namespace_id: namespace.id) } let!(:environment) { table(:environments).create!(name: 'production', slug: 'production', project_id: project.id) } @@ -22,6 +22,31 @@ RSpec.describe ScheduleDeleteOrphanedDeployments, :sidekiq, schema: 202106171613 stub_const("#{described_class}::BATCH_SIZE", 1) end + it 'steal existing background migration jobs' do + expect(Gitlab::BackgroundMigration).to receive(:steal).with('DeleteOrphanedDeployments') + + migrate! + end + + it 'cleans up background migration jobs tracking records' do + old_successful_job = background_migration_jobs.create!( + class_name: 'DeleteOrphanedDeployments', + status: Gitlab::Database::BackgroundMigrationJob.statuses[:succeeded], + arguments: [table(:deployments).minimum(:id), table(:deployments).minimum(:id)] + ) + + old_pending_job = background_migration_jobs.create!( + class_name: 'DeleteOrphanedDeployments', + status: Gitlab::Database::BackgroundMigrationJob.statuses[:pending], + arguments: [table(:deployments).maximum(:id), table(:deployments).maximum(:id)] + ) + + migrate! + + expect { old_successful_job.reload }.to raise_error(ActiveRecord::RecordNotFound) + expect { old_pending_job.reload }.to raise_error(ActiveRecord::RecordNotFound) + end + it 'schedules DeleteOrphanedDeployments background jobs' do Sidekiq::Testing.fake! do freeze_time do |