diff --git a/ee/spec/workers/geo/repository_verification/secondary/shard_worker_spec.rb b/ee/spec/workers/geo/repository_verification/secondary/shard_worker_spec.rb index 5e0c7cd66bbf61231d544b4f2b292165ea284a71..f5e67ebaad13e510d5d8e099b860d7f0e8399955 100644 --- a/ee/spec/workers/geo/repository_verification/secondary/shard_worker_spec.rb +++ b/ee/spec/workers/geo/repository_verification/secondary/shard_worker_spec.rb @@ -95,23 +95,18 @@ let(:project5_both_verified) { create(:repository_state, :repository_verified, :wiki_verified).project } let(:project6_both_verified) { create(:repository_state, :repository_verified, :wiki_verified).project } - # https://gitlab.com/gitlab-org/gitlab/issues/12455 it 'handles multiple batches of projects needing verification' do reg1 = create(:geo_project_registry, :synced, :repository_verification_outdated, project: project1_repo_verified) reg2 = create(:geo_project_registry, :synced, :repository_verification_outdated, project: project2_repo_verified) - expect(secondary_single_worker).to receive(:perform_async).with(reg1.id).once + expect(secondary_single_worker).to receive(:perform_async).with(reg1.id).once.and_call_original + expect(secondary_single_worker).to receive(:perform_async).with(reg2.id).once.and_call_original - subject.perform(shard_name) - - reg1.update!(repository_verification_checksum_sha: project1_repo_verified.repository_state.repository_verification_checksum) - - expect(secondary_single_worker).to receive(:perform_async).with(reg2.id).once - - subject.perform(shard_name) + 3.times do + Sidekiq::Testing.inline! { subject.perform(shard_name) } + end end - # https://gitlab.com/gitlab-org/gitlab/issues/12455 it 'handles multiple batches of projects needing verification, skipping failed repos' do reg1 = create(:geo_project_registry, :synced, :repository_verification_outdated, project: project1_repo_verified) reg2 = create(:geo_project_registry, :synced, :repository_verification_outdated, project: project2_repo_verified) @@ -120,27 +115,14 @@ create(:geo_project_registry, :synced, :repository_verification_failed, :wiki_verification_failed, project: project5_both_verified) reg6 = create(:geo_project_registry, :synced, project: project6_both_verified) - expect(secondary_single_worker).to receive(:perform_async).with(reg1.id).once - - subject.perform(shard_name) - - reg1.update!(repository_verification_checksum_sha: project1_repo_verified.repository_state.repository_verification_checksum) - - expect(secondary_single_worker).to receive(:perform_async).with(reg2.id).once + expect(secondary_single_worker).to receive(:perform_async).with(reg1.id).once.and_call_original + expect(secondary_single_worker).to receive(:perform_async).with(reg2.id).once.and_call_original + expect(secondary_single_worker).to receive(:perform_async).with(reg4.id).once.and_call_original + expect(secondary_single_worker).to receive(:perform_async).with(reg6.id).once.and_call_original - subject.perform(shard_name) - - reg2.update!(repository_verification_checksum_sha: project2_repo_verified.repository_state.repository_verification_checksum) - - expect(secondary_single_worker).to receive(:perform_async).with(reg4.id).once - - subject.perform(shard_name) - - reg4.update!(last_wiki_verification_failure: 'Failed!') - - expect(secondary_single_worker).to receive(:perform_async).with(reg6.id).once - - subject.perform(shard_name) + 7.times do + Sidekiq::Testing.inline! { subject.perform(shard_name) } + end end end