Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/finders/packages/pypi/packages_finder_spec.rb')
-rw-r--r--spec/finders/packages/pypi/packages_finder_spec.rb94
1 files changed, 63 insertions, 31 deletions
diff --git a/spec/finders/packages/pypi/packages_finder_spec.rb b/spec/finders/packages/pypi/packages_finder_spec.rb
index 1a44fb99009..3957eb188da 100644
--- a/spec/finders/packages/pypi/packages_finder_spec.rb
+++ b/spec/finders/packages/pypi/packages_finder_spec.rb
@@ -12,59 +12,91 @@ RSpec.describe Packages::Pypi::PackagesFinder do
let_it_be(:package3) { create(:pypi_package, name: package2.name, project: project) }
let_it_be(:package4) { create(:pypi_package, name: package2.name, project: project2) }
- let(:package_name) { package2.name }
+ shared_examples 'when no package is found' do
+ context 'non-existing package' do
+ let(:package_name) { 'none' }
- describe 'execute' do
- subject { described_class.new(user, scope, package_name: package_name).execute }
+ it { expect(subject).to be_empty }
+ end
+ end
- shared_examples 'when no package is found' do
- context 'non-existing package' do
- let(:package_name) { 'none' }
+ shared_examples 'when package_name param is a non-normalized name' do
+ context 'non-existing package' do
+ let(:package_name) { package2.name.upcase.tr('-', '.') }
- it { expect(subject).to be_empty }
- end
+ it { expect(subject).to be_empty }
end
+ end
- shared_examples 'when package_name param is a non-normalized name' do
- context 'non-existing package' do
- let(:package_name) { package2.name.upcase.tr('-', '.') }
+ describe '#execute' do
+ subject { described_class.new(user, scope, package_name: package_name).execute }
- it { expect(subject).to be_empty }
+ context 'with package name param' do
+ let(:package_name) { package2.name }
+
+ context 'within a project' do
+ let(:scope) { project }
+
+ it { is_expected.to contain_exactly(package2, package3) }
+
+ it_behaves_like 'when no package is found'
+ it_behaves_like 'when package_name param is a non-normalized name'
end
- end
- context 'within a project' do
- let(:scope) { project }
+ context 'within a group' do
+ let(:scope) { group }
- it { is_expected.to contain_exactly(package2, package3) }
+ it { expect(subject).to be_empty }
- it_behaves_like 'when no package is found'
- it_behaves_like 'when package_name param is a non-normalized name'
- end
+ context 'user with access to only one project' do
+ before do
+ project2.add_developer(user)
+ end
- context 'within a group' do
- let(:scope) { group }
+ it { is_expected.to contain_exactly(package4) }
- it { expect(subject).to be_empty }
+ it_behaves_like 'when no package is found'
+ it_behaves_like 'when package_name param is a non-normalized name'
- context 'user with access to only one project' do
- before do
- project2.add_developer(user)
+ context 'user with access to multiple projects' do
+ before do
+ project.add_developer(user)
+ end
+
+ it { is_expected.to contain_exactly(package2, package3, package4) }
+ end
end
+ end
+ end
- it { is_expected.to contain_exactly(package4) }
+ context 'without package_name param' do
+ let(:package_name) { nil }
- it_behaves_like 'when no package is found'
- it_behaves_like 'when package_name param is a non-normalized name'
+ context 'within a group' do
+ let(:scope) { group }
- context ' user with access to multiple projects' do
+ context 'user with access to only one project' do
before do
- project.add_developer(user)
+ project2.add_developer(user)
end
- it { is_expected.to contain_exactly(package2, package3, package4) }
+ it { is_expected.to contain_exactly(package4) }
+
+ context 'user with access to multiple projects' do
+ before do
+ project.add_developer(user)
+ end
+
+ it { is_expected.to contain_exactly(package1, package2, package3, package4) }
+ end
end
end
+
+ context 'within a project' do
+ let(:scope) { project }
+
+ it { is_expected.to contain_exactly(package1, package2, package3) }
+ end
end
end
end