diff options
Diffstat (limited to 'spec/workers/build_finished_worker_spec.rb')
-rw-r--r-- | spec/workers/build_finished_worker_spec.rb | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/spec/workers/build_finished_worker_spec.rb b/spec/workers/build_finished_worker_spec.rb index 11b50961e9e..b0058c76e27 100644 --- a/spec/workers/build_finished_worker_spec.rb +++ b/spec/workers/build_finished_worker_spec.rb @@ -11,18 +11,28 @@ RSpec.describe BuildFinishedWorker do context 'when build exists' do let!(:build) { create(:ci_build) } - it 'calculates coverage and calls hooks' do - expect(BuildTraceSectionsWorker) - .to receive(:new).ordered.and_call_original - expect(BuildCoverageWorker) - .to receive(:new).ordered.and_call_original - - expect_any_instance_of(BuildTraceSectionsWorker).to receive(:perform) - expect_any_instance_of(BuildCoverageWorker).to receive(:perform) + it 'calculates coverage and calls hooks', :aggregate_failures do + trace_worker = double('trace worker') + coverage_worker = double('coverage worker') + + allow(BuildTraceSectionsWorker).to receive(:new).and_return(trace_worker) + allow(BuildCoverageWorker).to receive(:new).and_return(coverage_worker) + + # Unfortunately, `ordered` does not seem to work when called within `allow_next_instance_of` + # so we're doing this the long and dirty way + expect(trace_worker).to receive(:perform).ordered + expect(coverage_worker).to receive(:perform).ordered + + expect_next_instance_of(Ci::BuildReportResultWorker) do |instance| + expect(instance).to receive(:perform) + end + expect_next_instance_of(Ci::TestCasesService) do |instance| + expect(instance).to receive(:execute) + end + expect(BuildHooksWorker).to receive(:perform_async) expect(ExpirePipelineCacheWorker).to receive(:perform_async) expect(ChatNotificationWorker).not_to receive(:perform_async) - expect(Ci::BuildReportResultWorker).not_to receive(:perform) expect(ArchiveTraceWorker).to receive(:perform_in) subject @@ -31,7 +41,7 @@ RSpec.describe BuildFinishedWorker do context 'when build does not exist' do it 'does not raise exception' do - expect { described_class.new.perform(123) } + expect { described_class.new.perform(non_existing_record_id) } .not_to raise_error end end @@ -45,17 +55,5 @@ RSpec.describe BuildFinishedWorker do subject end end - - context 'when build has a test report' do - let(:build) { create(:ci_build, :test_reports) } - - it 'schedules a BuildReportResult job' do - expect_next_instance_of(Ci::BuildReportResultWorker) do |worker| - expect(worker).to receive(:perform).with(build.id) - end - - subject - end - end end end |