diff options
Diffstat (limited to 'spec/workers/projects')
4 files changed, 76 insertions, 28 deletions
diff --git a/spec/workers/projects/delete_branch_worker_spec.rb b/spec/workers/projects/delete_branch_worker_spec.rb index c1289f56929..771ab3def84 100644 --- a/spec/workers/projects/delete_branch_worker_spec.rb +++ b/spec/workers/projects/delete_branch_worker_spec.rb @@ -64,9 +64,11 @@ RSpec.describe Projects::DeleteBranchWorker, feature_category: :source_code_mana expect(instance).to receive(:execute).with(branch).and_return(service_result) end - expect(service_result).to receive(:track_and_raise_exception).and_call_original + expect(service_result).to receive(:log_and_raise_exception).and_call_original - expect { worker.perform(project.id, user.id, branch) }.to raise_error(StandardError) + expect do + worker.perform(project.id, user.id, branch) + end.to raise_error(Projects::DeleteBranchWorker::GitReferenceLockedError) end end @@ -78,25 +80,7 @@ RSpec.describe Projects::DeleteBranchWorker, feature_category: :source_code_mana expect(instance).to receive(:execute).with(branch).and_return(service_result) end - expect(service_result).not_to receive(:track_and_raise_exception) - - expect { worker.perform(project.id, user.id, branch) }.not_to raise_error - end - end - - context 'when track_and_raise_delete_source_errors is disabled' do - let(:status_code) { 400 } - - before do - stub_feature_flags(track_and_raise_delete_source_errors: false) - end - - it 'does not track the exception' do - expect_next_instance_of(::Branches::DeleteService) do |instance| - expect(instance).to receive(:execute).with(branch).and_return(service_result) - end - - expect(service_result).not_to receive(:track_and_raise_exception) + expect(service_result).not_to receive(:log_and_raise_exception) expect { worker.perform(project.id, user.id, branch) }.not_to raise_error end diff --git a/spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb b/spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb new file mode 100644 index 00000000000..932ba29f806 --- /dev/null +++ b/spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::FinalizeProjectStatisticsRefreshWorker do + let_it_be(:record) { create(:project_build_artifacts_size_refresh, :finalizing) } + + describe '#perform' do + let(:attribute) { record.class.counter_attributes.first } + let(:worker) { described_class.new } + + subject { worker.perform(record.class.name, record.id) } + + it 'stores the refresh increment to the buffered counter' do + expect(record.class).to receive(:find_by_id).and_return(record) + expect(record).to receive(:finalize!) + + subject + end + + context 'when record class does not exist' do + subject { worker.perform('NonExistentModel', 1) } + + it 'does nothing' do + expect(record).not_to receive(:finalize!) + + subject + end + end + + context 'when record does not exist' do + subject { worker.perform(record.class.name, non_existing_record_id) } + + it 'does nothing' do + expect(record).not_to receive(:finalize!) + + subject + end + end + end +end diff --git a/spec/workers/projects/git_garbage_collect_worker_spec.rb b/spec/workers/projects/git_garbage_collect_worker_spec.rb index ae567107443..899e3ed2007 100644 --- a/spec/workers/projects/git_garbage_collect_worker_spec.rb +++ b/spec/workers/projects/git_garbage_collect_worker_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Projects::GitGarbageCollectWorker do +RSpec.describe Projects::GitGarbageCollectWorker, feature_category: :source_code_management do let_it_be(:project) { create(:project, :repository) } it_behaves_like 'can collect git garbage' do @@ -24,8 +24,7 @@ RSpec.describe Projects::GitGarbageCollectWorker do end context 'when the repository has joined a pool' do - let!(:pool) { create(:pool_repository, :ready) } - let(:project) { pool.source_project } + let_it_be(:pool) { create(:pool_repository, :ready, source_project: project) } it 'ensures the repositories are linked' do expect(project.pool_repository).to receive(:link_repository).once diff --git a/spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb b/spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb index c7e45e7e4d7..00c45255316 100644 --- a/spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb +++ b/spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb @@ -62,14 +62,38 @@ RSpec.describe Projects::RefreshBuildArtifactsSizeStatisticsWorker do describe '#max_running_jobs' do subject { worker.max_running_jobs } - it { is_expected.to eq(10) } + before do + stub_feature_flags( + projects_build_artifacts_size_refresh: false, + projects_build_artifacts_size_refresh_medium: false, + projects_build_artifacts_size_refresh_high: false + ) + end - context 'when projects_build_artifacts_size_refresh flag is disabled' do + it { is_expected.to eq(0) } + + context 'when projects_build_artifacts_size_refresh flag is enabled' do before do - stub_feature_flags(projects_build_artifacts_size_refresh: false) + stub_feature_flags(projects_build_artifacts_size_refresh: true) end - it { is_expected.to eq(0) } + it { is_expected.to eq(described_class::MAX_RUNNING_LOW) } + end + + context 'when projects_build_artifacts_size_refresh_medium flag is enabled' do + before do + stub_feature_flags(projects_build_artifacts_size_refresh_medium: true) + end + + it { is_expected.to eq(described_class::MAX_RUNNING_MEDIUM) } + end + + context 'when projects_build_artifacts_size_refresh_high flag is enabled' do + before do + stub_feature_flags(projects_build_artifacts_size_refresh_high: true) + end + + it { is_expected.to eq(described_class::MAX_RUNNING_HIGH) } end end end |