summaryrefslogtreecommitdiff
path: root/spec/models/packages
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-12-20 14:22:11 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-12-20 14:22:11 +0000
commit0c872e02b2c822e3397515ec324051ff540f0cd5 (patch)
treece2fb6ce7030e4dad0f4118d21ab6453e5938cdd /spec/models/packages
parentf7e05a6853b12f02911494c4b3fe53d9540d74fc (diff)
downloadgitlab-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.rb10
-rw-r--r--spec/models/packages/package_spec.rb12
-rw-r--r--spec/models/packages/rpm/repository_file_spec.rb28
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