diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-23 21:11:07 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-23 21:11:07 +0300 |
commit | 5e9fe672fa0eda6322bd392e8502d1886804bd07 (patch) | |
tree | e2dbccd4f9b92ead855d87ff4fcffaff4fe9fb72 /spec/finders | |
parent | a7f478c9b1806a67ec9d991c3f54c242bb596f60 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/finders')
-rw-r--r-- | spec/finders/packages/npm/package_finder_spec.rb | 92 |
1 files changed, 75 insertions, 17 deletions
diff --git a/spec/finders/packages/npm/package_finder_spec.rb b/spec/finders/packages/npm/package_finder_spec.rb index a995f3b96c4..99174e2dd3a 100644 --- a/spec/finders/packages/npm/package_finder_spec.rb +++ b/spec/finders/packages/npm/package_finder_spec.rb @@ -68,6 +68,20 @@ RSpec.describe ::Packages::Npm::PackageFinder do it { is_expected.to be_empty } end + + context 'with npm_presenter_queries_tuning disabled' do + before do + stub_feature_flags(npm_presenter_queries_tuning: false) + end + + it_behaves_like 'finding packages by name' + + context 'set to nil' do + let(:project) { nil } + + it { is_expected.to be_empty } + end + end end context 'with a namespace' do @@ -80,6 +94,20 @@ RSpec.describe ::Packages::Npm::PackageFinder do it { is_expected.to be_empty } end + + context 'with npm_presenter_queries_tuning disabled' do + before do + stub_feature_flags(npm_presenter_queries_tuning: false) + end + + it_behaves_like 'accepting a namespace for', 'finding packages by name' + + context 'set to nil' do + let_it_be(:namespace) { nil } + + it { is_expected.to be_empty } + end + end end end @@ -109,6 +137,24 @@ RSpec.describe ::Packages::Npm::PackageFinder do it_behaves_like 'accepting a namespace for', 'finding packages by version' end + + context 'with npm_presenter_queries_tuning disabled' do + before do + stub_feature_flags(npm_presenter_queries_tuning: false) + end + + context 'with a project' do + let(:finder) { described_class.new(package_name, project: project) } + + it_behaves_like 'finding packages by version' + end + + context 'with a namespace' do + let(:finder) { described_class.new(package_name, namespace: namespace) } + + it_behaves_like 'accepting a namespace for', 'finding packages by version' + end + end end describe '#last' do @@ -118,31 +164,43 @@ RSpec.describe ::Packages::Npm::PackageFinder do it { is_expected.to eq(package) } end - context 'with a project' do - let(:finder) { described_class.new(package_name, project: project) } + shared_examples 'handling project or namespace parameter' do + context 'with a project' do + let(:finder) { described_class.new(package_name, project: project) } - it_behaves_like 'finding package by last' - end + it_behaves_like 'finding package by last' + end - context 'with a namespace' do - let(:finder) { described_class.new(package_name, namespace: namespace) } + context 'with a namespace' do + let(:finder) { described_class.new(package_name, namespace: namespace) } - it_behaves_like 'accepting a namespace for', 'finding package by last' + it_behaves_like 'accepting a namespace for', 'finding package by last' - context 'with duplicate packages' do - let_it_be(:namespace) { create(:group) } - let_it_be(:subgroup1) { create(:group, parent: namespace) } - let_it_be(:subgroup2) { create(:group, parent: namespace) } - let_it_be(:project2) { create(:project, namespace: subgroup2) } - let_it_be(:package2) { create(:npm_package, name: package.name, project: project2) } + context 'with duplicate packages' do + let_it_be(:namespace) { create(:group) } + let_it_be(:subgroup1) { create(:group, parent: namespace) } + let_it_be(:subgroup2) { create(:group, parent: namespace) } + let_it_be(:project2) { create(:project, namespace: subgroup2) } + let_it_be(:package2) { create(:npm_package, name: package.name, project: project2) } - before do - project.update!(namespace: subgroup1) + before do + project.update!(namespace: subgroup1) + end + + # the most recent one is returned + it { is_expected.to eq(package2) } end + end + end - # the most recent one is returned - it { is_expected.to eq(package2) } + it_behaves_like 'handling project or namespace parameter' + + context 'with npm_presenter_queries_tuning disabled' do + before do + stub_feature_flags(npm_presenter_queries_tuning: false) end + + it_behaves_like 'handling project or namespace parameter' end end end |