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:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-28 21:10:23 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-28 21:10:23 +0300
commita66948df0c3fda7764965f8cf4c9c99226c0d44d (patch)
tree36d0534d5c03a4ccbbd6da091ba32b96ca27a51b /spec/migrations
parent1d9f78b3a4ecd36806890e80e513242d0fdf7b6e (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