diff options
Diffstat (limited to 'spec/workers/ci')
-rw-r--r-- | spec/workers/ci/ref_delete_unlock_artifacts_worker_spec.rb | 34 | ||||
-rw-r--r-- | spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb | 4 |
2 files changed, 37 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 diff --git a/spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb b/spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb index 650be1e84a9..be7f7ef5c8c 100644 --- a/spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb +++ b/spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb @@ -9,6 +9,10 @@ RSpec.describe Ci::ResourceGroups::AssignResourceFromResourceGroupWorker do expect(described_class.get_deduplicate_strategy).to eq(:until_executed) end + it 'has an option to reschedule once if deduplicated' do + expect(described_class.get_deduplication_options).to include({ if_deduplicated: :reschedule_once }) + end + describe '#perform' do subject { worker.perform(resource_group_id) } |