summaryrefslogtreecommitdiff
path: root/spec/workers/build_finished_worker_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/workers/build_finished_worker_spec.rb')
-rw-r--r--spec/workers/build_finished_worker_spec.rb42
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