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/migrations/adjust_task_note_rename_background_migration_values_spec.rb')
-rw-r--r--spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb143
1 files changed, 0 insertions, 143 deletions
diff --git a/spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb b/spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb
deleted file mode 100644
index 01680fa12cc..00000000000
--- a/spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb
+++ /dev/null
@@ -1,143 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-require_migration!
-
-RSpec.describe AdjustTaskNoteRenameBackgroundMigrationValues, :migration, feature_category: :team_planning do
- let(:finished_status) { 3 }
- let(:failed_status) { described_class::MIGRATION_FAILED_STATUS }
- let(:active_status) { described_class::MIGRATION_ACTIVE_STATUS }
-
- shared_examples 'task note migration with failing batches' do
- it 'updates batch sizes and resets failed batches' do
- migration = create_background_migration(status: initial_status)
- batches = []
-
- batches << create_failed_batched_job(migration)
- batches << create_failed_batched_job(migration)
-
- migrate!
-
- expect(described_class::JOB_CLASS_NAME).to have_scheduled_batched_migration(
- table_name: :system_note_metadata,
- column_name: :id,
- interval: 2.minutes,
- batch_size: described_class::NEW_BATCH_SIZE,
- max_batch_size: 20_000,
- sub_batch_size: described_class::NEW_SUB_BATCH_SIZE
- )
- expect(migration.reload.status).to eq(active_status)
-
- updated_batches = batches.map { |b| b.reload.attributes.slice('attempts', 'sub_batch_size') }
- expect(updated_batches).to all(eq("attempts" => 0, "sub_batch_size" => 10))
- end
- end
-
- describe '#up' do
- context 'when migration was already finished' do
- it 'does not update batch sizes' do
- create_background_migration(status: finished_status)
-
- migrate!
-
- expect(described_class::JOB_CLASS_NAME).to have_scheduled_batched_migration(
- table_name: :system_note_metadata,
- column_name: :id,
- interval: 2.minutes,
- batch_size: described_class::OLD_BATCH_SIZE,
- max_batch_size: 20_000,
- sub_batch_size: described_class::OLD_SUB_BATCH_SIZE
- )
- end
- end
-
- context 'when the migration had failing batches' do
- context 'when migration had a failed status' do
- it_behaves_like 'task note migration with failing batches' do
- let(:initial_status) { failed_status }
- end
-
- it 'updates started_at timestamp' do
- migration = create_background_migration(status: failed_status)
- now = Time.zone.now
-
- travel_to now do
- migrate!
- migration.reload
- end
-
- expect(migration.started_at).to be_like_time(now)
- end
- end
-
- context 'when migration had an active status' do
- it_behaves_like 'task note migration with failing batches' do
- let(:initial_status) { active_status }
- end
-
- it 'does not update started_at timestamp' do
- migration = create_background_migration(status: active_status)
- original_time = migration.started_at
-
- migrate!
- migration.reload
-
- expect(migration.started_at).to be_like_time(original_time)
- end
- end
- end
- end
-
- describe '#down' do
- it 'reverts to old batch sizes' do
- create_background_migration(status: finished_status)
-
- migrate!
- schema_migrate_down!
-
- expect(described_class::JOB_CLASS_NAME).to have_scheduled_batched_migration(
- table_name: :system_note_metadata,
- column_name: :id,
- interval: 2.minutes,
- batch_size: described_class::OLD_BATCH_SIZE,
- max_batch_size: 20_000,
- sub_batch_size: described_class::OLD_SUB_BATCH_SIZE
- )
- end
- end
-
- def create_failed_batched_job(migration)
- table(:batched_background_migration_jobs).create!(
- batched_background_migration_id: migration.id,
- status: described_class::JOB_FAILED_STATUS,
- min_value: 1,
- max_value: 10,
- attempts: 3,
- batch_size: described_class::OLD_BATCH_SIZE,
- sub_batch_size: described_class::OLD_SUB_BATCH_SIZE
- )
- end
-
- def create_background_migration(status:)
- migrations_table = table(:batched_background_migrations)
- # make sure we only have on migration with that job class name in the specs
- migrations_table.where(job_class_name: described_class::JOB_CLASS_NAME).delete_all
-
- migrations_table.create!(
- job_class_name: described_class::JOB_CLASS_NAME,
- status: status,
- max_value: 10,
- max_batch_size: 20_000,
- batch_size: described_class::OLD_BATCH_SIZE,
- sub_batch_size: described_class::OLD_SUB_BATCH_SIZE,
- interval: 2.minutes,
- table_name: :system_note_metadata,
- column_name: :id,
- total_tuple_count: 100_000,
- pause_ms: 100,
- gitlab_schema: :gitlab_main,
- job_arguments: [],
- started_at: 2.days.ago
- )
- end
-end