diff options
Diffstat (limited to 'spec/models/container_repository_spec.rb')
-rw-r--r-- | spec/models/container_repository_spec.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/models/container_repository_spec.rb b/spec/models/container_repository_spec.rb index 0033e9bbd08..9af53bae204 100644 --- a/spec/models/container_repository_spec.rb +++ b/spec/models/container_repository_spec.rb @@ -871,6 +871,28 @@ RSpec.describe ContainerRepository, :aggregate_failures do end end + describe '#set_delete_ongoing_status', :freeze_time do + let_it_be(:repository) { create(:container_repository) } + + subject { repository.set_delete_ongoing_status } + + it 'updates deletion status attributes' do + expect { subject }.to change(repository, :status).from(nil).to('delete_ongoing') + .and change(repository, :delete_started_at).from(nil).to(Time.zone.now) + end + end + + describe '#set_delete_scheduled_status' do + let_it_be(:repository) { create(:container_repository, :status_delete_ongoing, delete_started_at: 3.minutes.ago) } + + subject { repository.set_delete_scheduled_status } + + it 'updates delete attributes' do + expect { subject }.to change(repository, :status).from('delete_ongoing').to('delete_scheduled') + .and change(repository, :delete_started_at).to(nil) + end + end + context 'registry migration' do before do allow(repository.gitlab_api_client).to receive(:supports_gitlab_api?).and_return(true) @@ -1274,6 +1296,16 @@ RSpec.describe ContainerRepository, :aggregate_failures do it { is_expected.to contain_exactly(repository1, repository3) } end + describe '.with_stale_delete_at' do + let_it_be(:repository1) { create(:container_repository, delete_started_at: 1.day.ago) } + let_it_be(:repository2) { create(:container_repository, delete_started_at: 25.minutes.ago) } + let_it_be(:repository3) { create(:container_repository, delete_started_at: 1.week.ago) } + + subject { described_class.with_stale_delete_at(27.minutes.ago) } + + it { is_expected.to contain_exactly(repository1, repository3) } + end + describe '.waiting_for_cleanup' do let_it_be(:repository_cleanup_scheduled) { create(:container_repository, :cleanup_scheduled) } let_it_be(:repository_cleanup_unfinished) { create(:container_repository, :cleanup_unfinished) } |