Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/ci/job_artifacts/destroy_batch_service_spec.rb')
-rw-r--r--spec/services/ci/job_artifacts/destroy_batch_service_spec.rb81
1 files changed, 2 insertions, 79 deletions
diff --git a/spec/services/ci/job_artifacts/destroy_batch_service_spec.rb b/spec/services/ci/job_artifacts/destroy_batch_service_spec.rb
index 54d1cacc068..79920dcb2c7 100644
--- a/spec/services/ci/job_artifacts/destroy_batch_service_spec.rb
+++ b/spec/services/ci/job_artifacts/destroy_batch_service_spec.rb
@@ -60,10 +60,9 @@ RSpec.describe Ci::JobArtifacts::DestroyBatchService do
execute
end
- it 'preserves trace artifacts and removes any timestamp' do
+ it 'preserves trace artifacts' do
expect { subject }
- .to change { trace_artifact.reload.expire_at }.from(trace_artifact.expire_at).to(nil)
- .and not_change { Ci::JobArtifact.exists?(trace_artifact.id) }
+ .to not_change { Ci::JobArtifact.exists?(trace_artifact.id) }
end
context 'when artifact belongs to a project that is undergoing stats refresh' do
@@ -277,81 +276,5 @@ RSpec.describe Ci::JobArtifacts::DestroyBatchService do
is_expected.to eq(destroyed_artifacts_count: 0, statistics_updates: {}, status: :success)
end
end
-
- context 'with artifacts that has backfilled expire_at' do
- let!(:created_on_00_30_45_minutes_on_21_22_23) do
- [
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-21 00:00:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-21 01:30:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-22 12:00:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-22 12:30:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-23 23:00:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-23 23:30:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-23 06:45:00.000'))
- ]
- end
-
- let!(:created_close_to_00_or_30_minutes) do
- [
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-21 00:00:00.001')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-21 00:30:00.999'))
- ]
- end
-
- let!(:created_on_00_or_30_minutes_on_other_dates) do
- [
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-01 00:00:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-19 12:00:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-24 23:30:00.000'))
- ]
- end
-
- let!(:created_at_other_times) do
- [
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-19 00:00:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-19 00:30:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-24 00:00:00.000')),
- create(:ci_job_artifact, expire_at: Time.zone.parse('2022-01-24 00:30:00.000'))
- ]
- end
-
- let(:artifacts_to_keep) { created_on_00_30_45_minutes_on_21_22_23 }
- let(:artifacts_to_delete) { created_close_to_00_or_30_minutes + created_on_00_or_30_minutes_on_other_dates + created_at_other_times }
- let(:all_artifacts) { artifacts_to_keep + artifacts_to_delete }
-
- let(:artifacts) { Ci::JobArtifact.where(id: all_artifacts.map(&:id)) }
-
- it 'deletes job artifacts that do not have expire_at on 00, 30 or 45 minute of 21, 22, 23 of the month' do
- expect { subject }.to change { Ci::JobArtifact.count }.by(artifacts_to_delete.size * -1)
- end
-
- it 'keeps job artifacts that have expire_at on 00, 30 or 45 minute of 21, 22, 23 of the month' do
- expect { subject }.not_to change { Ci::JobArtifact.where(id: artifacts_to_keep.map(&:id)).count }
- end
-
- it 'removes expire_at on job artifacts that have expire_at on 00, 30 or 45 minute of 21, 22, 23 of the month' do
- subject
-
- expect(artifacts_to_keep.all? { |artifact| artifact.reload.expire_at.nil? }).to be(true)
- end
-
- context 'when feature flag is disabled' do
- before do
- stub_feature_flags(ci_detect_wrongly_expired_artifacts: false)
- end
-
- it 'deletes all job artifacts' do
- expect { subject }.to change { Ci::JobArtifact.count }.by(all_artifacts.size * -1)
- end
- end
-
- context 'when fix_expire_at is false' do
- let(:service) { described_class.new(artifacts, pick_up_at: Time.current, fix_expire_at: false) }
-
- it 'deletes all job artifacts' do
- expect { subject }.to change { Ci::JobArtifact.count }.by(all_artifacts.size * -1)
- end
- end
- end
end
end