Commit 841f45b7 authored by Vasilii Iakliushin's avatar Vasilii Iakliushin

Merge branch '340478-fix-migration-worker' into 'master'

Fix Elastic::MigrationWorker current_migration

See merge request gitlab-org/gitlab!69958
parents 1a70084d f682052a
......@@ -87,9 +87,9 @@ module Elastic
end
def current_migration
completed_migrations = Elastic::MigrationRecord.load_versions(completed: true)
uncompleted_migrations = Elastic::MigrationRecord.load_versions(completed: false)
Elastic::DataMigrationService.migrations.find { |migration| !completed_migrations.include?(migration.version) }
Elastic::DataMigrationService.migrations.find { |migration| uncompleted_migrations.include?(migration.version) }
end
def pause_indexing!(migration)
......
......@@ -22,7 +22,10 @@ RSpec.describe Elastic::MigrationWorker, :elastic do
before do
stub_ee_application_setting(elasticsearch_indexing: true)
end
context 'an unexecuted migration present' do
before do
allow(subject).to receive(:current_migration).and_return(migration)
end
......@@ -32,18 +35,6 @@ RSpec.describe Elastic::MigrationWorker, :elastic do
expect { subject.perform }.to change { Gitlab::Elastic::Helper.default.migrations_index_exists? }.from(false).to(true)
end
context 'no unexecuted migrations' do
before do
allow(subject).to receive(:current_migration).and_return(nil)
end
it 'skips execution' do
expect(subject).not_to receive(:execute_migration)
expect(subject.perform).to be_falsey
end
end
context 'migration is halted' do
using RSpec::Parameterized::TableSyntax
......@@ -187,5 +178,30 @@ RSpec.describe Elastic::MigrationWorker, :elastic do
end
end
end
context 'no unexecuted migrations' do
before do
allow(subject).to receive(:current_migration).and_return(nil)
end
it 'skips execution' do
expect(subject).not_to receive(:execute_migration)
expect(subject.perform).to be_falsey
end
end
context 'load_versions returns empty array' do
before do
allow(Elastic::MigrationRecord).to receive(:load_versions).and_return([])
end
it 'skips execution' do
expect(subject).not_to receive(:execute_migration)
expect(subject.perform).to be_falsey
end
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment