diff options
Diffstat (limited to 'spec/models/ci/build_spec.rb')
-rw-r--r-- | spec/models/ci/build_spec.rb | 52 |
1 files changed, 4 insertions, 48 deletions
diff --git a/spec/models/ci/build_spec.rb b/spec/models/ci/build_spec.rb index 66be192ab21..95b9bd4a4d9 100644 --- a/spec/models/ci/build_spec.rb +++ b/spec/models/ci/build_spec.rb @@ -31,6 +31,10 @@ describe Ci::Build do it { is_expected.to be_a(ArtifactMigratable) } + it_behaves_like 'UpdateProjectStatistics' do + subject { FactoryBot.build(:ci_build, pipeline: pipeline, artifacts_size: 23) } + end + describe 'associations' do it 'has a bidirectional relationship with projects' do expect(described_class.reflect_on_association(:project).has_inverse?).to eq(:builds) @@ -2119,54 +2123,6 @@ describe Ci::Build do end end - context 'when updating the build' do - let(:build) { create(:ci_build, artifacts_size: 23) } - - it 'updates project statistics' do - build.artifacts_size = 42 - - expect(build).to receive(:update_project_statistics_after_save).and_call_original - - expect { build.save! } - .to change { build.project.statistics.reload.build_artifacts_size } - .by(19) - end - - context 'when the artifact size stays the same' do - it 'does not update project statistics' do - build.name = 'changed' - - expect(build).not_to receive(:update_project_statistics_after_save) - - build.save! - end - end - end - - context 'when destroying the build' do - let!(:build) { create(:ci_build, artifacts_size: 23) } - - it 'updates project statistics' do - expect(ProjectStatistics) - .to receive(:increment_statistic) - .and_call_original - - expect { build.destroy! } - .to change { build.project.statistics.reload.build_artifacts_size } - .by(-23) - end - - context 'when the build is destroyed due to the project being destroyed' do - it 'does not update the project statistics' do - expect(ProjectStatistics) - .not_to receive(:increment_statistic) - - build.project.update(pending_delete: true) - build.project.destroy! - end - end - end - describe '#variables' do let(:container_registry_enabled) { false } |