diff options
Diffstat (limited to 'spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb')
-rw-r--r-- | spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb b/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb new file mode 100644 index 00000000000..925f1e573be --- /dev/null +++ b/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe CleanupDraftDataFromFaultyRegex do + let(:merge_requests) { table(:merge_requests) } + + let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } + let!(:project) { table(:projects).create!(namespace_id: namespace.id) } + + let(:default_mr_values) do + { + target_project_id: project.id, + draft: true, + source_branch: 'master', + target_branch: 'feature' + } + end + + let!(:known_good_1) { merge_requests.create!(default_mr_values.merge(title: "Draft: Test Title")) } + let!(:known_good_2) { merge_requests.create!(default_mr_values.merge(title: "WIP: Test Title")) } + let!(:known_bad_1) { merge_requests.create!(default_mr_values.merge(title: "Known bad title drafts")) } + let!(:known_bad_2) { merge_requests.create!(default_mr_values.merge(title: "Known bad title wip")) } + + describe '#up' do + it 'schedules CleanupDraftDataFromFaultyRegex background jobs filtering for eligble MRs' do + stub_const("#{described_class}::BATCH_SIZE", 2) + allow(Gitlab).to receive(:com?).and_return(true) + + freeze_time do + migrate! + + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(5.minutes, known_bad_1.id, known_bad_2.id) + + expect(BackgroundMigrationWorker.jobs.size).to eq(1) + end + end + end +end |