# frozen_string_literal: true require "spec_helper" require_migration! RSpec.describe ScheduleMigrateSharedVulnerabilityScanners, :migration do describe "#up" do before do migrate! end it "schedules" do expect(described_class::MIGRATION).to have_scheduled_batched_migration( table_name: described_class::TABLE_NAME, column_name: described_class::BATCH_COLUMN, interval: described_class::DELAY_INTERVAL, batch_size: described_class::BATCH_SIZE, max_batch_size: described_class::BATCH_SIZE, sub_batch_size: described_class::SUB_BATCH_SIZE, gitlab_schema: :gitlab_main ) end describe "ID range" do let(:expected_range) do { min_value: described_class::BATCH_MIN_VALUE, max_value: described_class::BATCH_MAX_VALUE } end subject do Gitlab::Database::BackgroundMigration::BatchedMigration .for_configuration(:gitlab_main, described_class::MIGRATION, described_class::TABLE_NAME, described_class::BATCH_COLUMN, []) end it "is set" do # The `have_scheduled_batched_migration` matcher accepts the # `batch_min_value` and `batch_max_value` keywords. However the respective # column names are `min_value` and `max_value`. Hence the matcher cannot # be used in this case, as it asserts the wrong attributes. expect(subject).to all(have_attributes(expected_range)) end end end describe '#down' do before do schema_migrate_down! end it "deletes" do expect(described_class::MIGRATION).not_to have_scheduled_batched_migration end end end