summaryrefslogtreecommitdiff
path: root/spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb')
-rw-r--r--spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb34
1 files changed, 33 insertions, 1 deletions
diff --git a/spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb b/spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb
index f510852e753..fe4bc2421a4 100644
--- a/spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb
+++ b/spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb
@@ -4,7 +4,9 @@ require 'spec_helper'
RSpec.describe Ci::RefDeleteUnlockArtifactsWorker do
describe '#perform' do
- subject(:perform) { described_class.new.perform(project_id, user_id, ref) }
+ subject(:perform) { worker.perform(project_id, user_id, ref) }
+
+ let(:worker) { described_class.new }
let(:ref) { 'refs/heads/master' }
@@ -40,6 +42,36 @@ RSpec.describe Ci::RefDeleteUnlockArtifactsWorker do
expect(service).to have_received(:execute).with(ci_ref)
end
+
+ context 'when a locked pipeline with persisted artifacts exists' do
+ let!(:pipeline) { create(:ci_pipeline, :with_persisted_artifacts, ref: 'master', project: project, locked: :artifacts_locked) }
+
+ context 'with ci_update_unlocked_job_artifacts disabled' do
+ before do
+ stub_feature_flags(ci_update_unlocked_job_artifacts: false)
+ end
+
+ it 'logs the correct extra metadata' do
+ expect(worker).to receive(:log_extra_metadata_on_done).with(:unlocked_pipelines, 1)
+ expect(worker).to receive(:log_extra_metadata_on_done).with(:unlocked_job_artifacts, 0)
+
+ perform
+ end
+ end
+
+ context 'with ci_update_unlocked_job_artifacts enabled' do
+ before do
+ stub_feature_flags(ci_update_unlocked_job_artifacts: true)
+ end
+
+ it 'logs the correct extra metadata' do
+ expect(worker).to receive(:log_extra_metadata_on_done).with(:unlocked_pipelines, 1)
+ expect(worker).to receive(:log_extra_metadata_on_done).with(:unlocked_job_artifacts, 2)
+
+ perform
+ end
+ end
+ end
end
context 'when ci ref does not exist for the given project' do