diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2017-07-20 10:10:36 +0000 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2017-07-20 10:10:36 +0000 |
commit | 001dd56e7bfd04d22f5437569ba8aa60a0317a3e (patch) | |
tree | a2d0145355c514758c7f5ad8ec873d801ac872e3 /spec | |
parent | 652b2d0d293ab054925cbd7e23b298ca06db1810 (diff) | |
parent | 841de9752fb35b7d1a701da8764729ba334c2da5 (diff) | |
download | gitlab-ce-001dd56e7bfd04d22f5437569ba8aa60a0317a3e.tar.gz |
Merge branch 'backstage/gb/build-stage-id-ref-bg-migration-cleanup' into 'master'
Implement build stage_id reference migration clean up
Closes #34893
See merge request !12785
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/background_migration_spec.rb | 6 | ||||
-rw-r--r-- | spec/migrations/clean_stage_id_reference_migration_spec.rb | 34 |
2 files changed, 37 insertions, 3 deletions
diff --git a/spec/lib/gitlab/background_migration_spec.rb b/spec/lib/gitlab/background_migration_spec.rb index cfa59280139..4ad69aeba43 100644 --- a/spec/lib/gitlab/background_migration_spec.rb +++ b/spec/lib/gitlab/background_migration_spec.rb @@ -25,7 +25,7 @@ describe Gitlab::BackgroundMigration do expect(queue[0]).to receive(:delete).and_return(true) expect(described_class).to receive(:perform) - .with('Foo', [10, 20], anything) + .with('Foo', [10, 20]) described_class.steal('Foo') end @@ -93,9 +93,9 @@ describe Gitlab::BackgroundMigration do it 'steals from the scheduled sets queue first' do Sidekiq::Testing.disable! do expect(described_class).to receive(:perform) - .with('Object', [1], anything).ordered + .with('Object', [1]).ordered expect(described_class).to receive(:perform) - .with('Object', [2], anything).ordered + .with('Object', [2]).ordered BackgroundMigrationWorker.perform_async('Object', [2]) BackgroundMigrationWorker.perform_in(10.minutes, 'Object', [1]) diff --git a/spec/migrations/clean_stage_id_reference_migration_spec.rb b/spec/migrations/clean_stage_id_reference_migration_spec.rb new file mode 100644 index 00000000000..9a581df28a2 --- /dev/null +++ b/spec/migrations/clean_stage_id_reference_migration_spec.rb @@ -0,0 +1,34 @@ +require 'spec_helper' +require Rails.root.join('db', 'migrate', '20170710083355_clean_stage_id_reference_migration.rb') + +describe CleanStageIdReferenceMigration, :migration, :sidekiq, :redis do + let(:migration_class) { 'MigrateBuildStageIdReference' } + let(:migration) { spy('migration') } + + before do + allow(Gitlab::BackgroundMigration.const_get(migration_class)) + .to receive(:new).and_return(migration) + end + + context 'when there are pending background migrations' do + it 'processes pending jobs synchronously' do + Sidekiq::Testing.disable! do + BackgroundMigrationWorker.perform_in(2.minutes, migration_class, [1, 1]) + BackgroundMigrationWorker.perform_async(migration_class, [1, 1]) + + migrate! + + expect(migration).to have_received(:perform).with(1, 1).twice + end + end + end + context 'when there are no background migrations pending' do + it 'does nothing' do + Sidekiq::Testing.disable! do + migrate! + + expect(migration).not_to have_received(:perform) + end + end + end +end |