Update code coverage for CI build asynchronously
This commit is contained in:
parent
8efa041a73
commit
5fd635d18b
2 changed files with 32 additions and 0 deletions
9
app/workers/build_coverage_worker.rb
Normal file
9
app/workers/build_coverage_worker.rb
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
class BuildCoverageWorker
|
||||||
|
include Sidekiq::Worker
|
||||||
|
sidekiq_options queue: :default
|
||||||
|
|
||||||
|
def perform(build_id)
|
||||||
|
Ci::Build.find_by(id: build_id)
|
||||||
|
.try(:update_coverage)
|
||||||
|
end
|
||||||
|
end
|
23
spec/workers/build_coverage_worker_spec.rb
Normal file
23
spec/workers/build_coverage_worker_spec.rb
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe BuildCoverageWorker do
|
||||||
|
describe '#perform' do
|
||||||
|
context 'when build exists' do
|
||||||
|
let!(:build) { create(:ci_build) }
|
||||||
|
|
||||||
|
it 'updates code coverage' do
|
||||||
|
expect_any_instance_of(Ci::Build)
|
||||||
|
.to receive(:update_coverage)
|
||||||
|
|
||||||
|
described_class.new.perform(build.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when build does not exist' do
|
||||||
|
it 'does not raise exception' do
|
||||||
|
expect { described_class.new.perform(123) }
|
||||||
|
.not_to raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue