diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 14:22:11 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 14:22:11 +0000 |
commit | 0c872e02b2c822e3397515ec324051ff540f0cd5 (patch) | |
tree | ce2fb6ce7030e4dad0f4118d21ab6453e5938cdd /spec/models/packages | |
parent | f7e05a6853b12f02911494c4b3fe53d9540d74fc (diff) | |
download | gitlab-ce-0c872e02b2c822e3397515ec324051ff540f0cd5.tar.gz |
Add latest changes from gitlab-org/gitlab@15-7-stable-eev15.7.0-rc42
Diffstat (limited to 'spec/models/packages')
-rw-r--r-- | spec/models/packages/package_file_spec.rb | 10 | ||||
-rw-r--r-- | spec/models/packages/package_spec.rb | 12 | ||||
-rw-r--r-- | spec/models/packages/rpm/repository_file_spec.rb | 28 |
3 files changed, 36 insertions, 14 deletions
diff --git a/spec/models/packages/package_file_spec.rb b/spec/models/packages/package_file_spec.rb index c665f738ead..a244ed34e54 100644 --- a/spec/models/packages/package_file_spec.rb +++ b/spec/models/packages/package_file_spec.rb @@ -104,15 +104,9 @@ RSpec.describe Packages::PackageFile, type: :model do let_it_be(:package, reload: true) { create(:package) } context 'when the package file has an explicit size' do - it_behaves_like 'UpdateProjectStatistics' do - subject { build(:package_file, :jar, package: package, size: 42) } - end - end + subject { build(:package_file, :jar, package: package, size: 42) } - context 'when the package file does not have a size' do - it_behaves_like 'UpdateProjectStatistics' do - subject { build(:package_file, package: package, size: nil) } - end + it_behaves_like 'UpdateProjectStatistics', :packages_size end end diff --git a/spec/models/packages/package_spec.rb b/spec/models/packages/package_spec.rb index 241c585099c..d6f71f2401c 100644 --- a/spec/models/packages/package_spec.rb +++ b/spec/models/packages/package_spec.rb @@ -708,12 +708,14 @@ RSpec.describe Packages::Package, type: :model do describe '#destroy' do let(:package) { create(:npm_package) } let(:package_file) { package.package_files.first } - let(:project_statistics) { ProjectStatistics.for_project_ids(package.project.id).first } + let(:project_statistics) { package.project.statistics } - it 'affects project statistics' do - expect { package.destroy! } - .to change { project_statistics.reload.packages_size } - .from(package_file.size).to(0) + subject(:destroy!) { package.destroy! } + + it 'updates the project statistics' do + expect(project_statistics).to receive(:increment_counter).with(:packages_size, -package_file.size) + + destroy! end end diff --git a/spec/models/packages/rpm/repository_file_spec.rb b/spec/models/packages/rpm/repository_file_spec.rb index 34347793dd8..1147fd66ac6 100644 --- a/spec/models/packages/rpm/repository_file_spec.rb +++ b/spec/models/packages/rpm/repository_file_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe Packages::Rpm::RepositoryFile, type: :model do +RSpec.describe Packages::Rpm::RepositoryFile, type: :model, feature_category: :package_registry do using RSpec::Parameterized::TableSyntax let_it_be(:repository_file) { create(:rpm_repository_file) } @@ -16,6 +16,32 @@ RSpec.describe Packages::Rpm::RepositoryFile, type: :model do it { is_expected.to validate_presence_of(:project) } end + describe '.has_oversized_filelists?' do + let_it_be(:filelists) { create(:rpm_repository_file, :filelists, size: 21.megabytes) } + + subject { described_class.has_oversized_filelists?(project_id: filelists.project_id) } + + context 'when has oversized filelists' do + it { expect(subject).to be true } + end + + context 'when filelists.xml is not oversized' do + before do + filelists.update!(size: 19.megabytes) + end + + it { expect(subject).to be_falsey } + end + + context 'when there is no filelists.xml' do + before do + filelists.destroy! + end + + it { expect(subject).to be_falsey } + end + end + context 'when updating project statistics' do context 'when the package file has an explicit size' do it_behaves_like 'UpdateProjectStatistics' do |