summaryrefslogtreecommitdiff
path: root/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb
diff options
context:
space:
mode:
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.rb40
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