summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects_spec.rb')
-rw-r--r--spec/lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects_spec.rb39
1 files changed, 27 insertions, 12 deletions
diff --git a/spec/lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects_spec.rb b/spec/lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects_spec.rb
index fd61047d851..7d3df69bee2 100644
--- a/spec/lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects_spec.rb
+++ b/spec/lib/gitlab/background_migration/reset_duplicate_ci_runners_token_values_on_projects_spec.rb
@@ -6,32 +6,47 @@ RSpec.describe Gitlab::BackgroundMigration::ResetDuplicateCiRunnersTokenValuesOn
let(:namespaces) { table(:namespaces) }
let(:projects) { table(:projects) }
- let(:perform) { described_class.new.perform(1, 4) }
+ subject(:background_migration) { described_class.new }
before do
namespaces.create!(id: 123, name: 'sample', path: 'sample')
projects.create!(id: 1, namespace_id: 123, runners_token: 'duplicate')
projects.create!(id: 2, namespace_id: 123, runners_token: 'a-runners-token')
- projects.create!(id: 3, namespace_id: 123, runners_token: 'duplicate')
+ projects.create!(id: 3, namespace_id: 123, runners_token: 'duplicate-2')
projects.create!(id: 4, namespace_id: 123, runners_token: nil)
projects.create!(id: 5, namespace_id: 123, runners_token: 'duplicate-2')
- projects.create!(id: 6, namespace_id: 123, runners_token: 'duplicate-2')
+ projects.create!(id: 6, namespace_id: 123, runners_token: 'duplicate')
+ projects.create!(id: 7, namespace_id: 123, runners_token: 'another-runners-token')
+ projects.create!(id: 8, namespace_id: 123, runners_token: 'another-runners-token')
end
describe '#up' do
- before do
- stub_const("#{described_class}::SUB_BATCH_SIZE", 2)
- end
-
it 'nullifies duplicate tokens', :aggregate_failures do
- perform
+ background_migration.perform(1, 2)
+ background_migration.perform(3, 4)
- expect(projects.count).to eq(6)
+ expect(projects.count).to eq(8)
expect(projects.all.pluck(:id, :runners_token).to_h).to eq(
- { 1 => nil, 2 => 'a-runners-token', 3 => nil, 4 => nil, 5 => 'duplicate-2', 6 => 'duplicate-2' }
- )
- expect(projects.pluck(:runners_token).uniq).to match_array [nil, 'a-runners-token', 'duplicate-2']
+ {
+ 1 => nil,
+ 2 => 'a-runners-token',
+ 3 => nil,
+ 4 => nil,
+ 5 => 'duplicate-2',
+ 6 => 'duplicate',
+ 7 => 'another-runners-token',
+ 8 => 'another-runners-token'
+ })
+ expect(projects.pluck(:runners_token).uniq).to match_array [
+ nil, 'a-runners-token', 'duplicate', 'duplicate-2', 'another-runners-token'
+ ]
+ end
+
+ it 'does not touch projects outside id range' do
+ expect do
+ background_migration.perform(1, 2)
+ end.not_to change { projects.where(id: [3..8]).each(&:reload).map(&:updated_at) }
end
end
end