diff --git a/app/finders/packages/maven/package_finder.rb b/app/finders/packages/maven/package_finder.rb index 775db12adb7ea2819415f2c79830c0efbba6a03a..45b54e7ac3b9bb7236de9b67fa4a047d9d82bfbe 100644 --- a/app/finders/packages/maven/package_finder.rb +++ b/app/finders/packages/maven/package_finder.rb @@ -27,7 +27,7 @@ def base elsif group packages_for_multiple_projects else - packages + ::Packages::Package.none end end @@ -35,11 +35,6 @@ def packages_with_path base.only_maven_packages_with_path(path) end - # Produces a query that returns all packages. - def packages - ::Packages::Package.all - end - # Produces a query that retrieves packages from a single project. def packages_for_a_single_project project.packages diff --git a/changelogs/unreleased/284686-fix-the-maven-packages-finder.yml b/changelogs/unreleased/284686-fix-the-maven-packages-finder.yml new file mode 100644 index 0000000000000000000000000000000000000000..754fc605dbdef36a2c2119f7359da6b80b2840ad --- /dev/null +++ b/changelogs/unreleased/284686-fix-the-maven-packages-finder.yml @@ -0,0 +1,5 @@ +--- +title: Update the maven package finder +merge_request: 50774 +author: +type: changed diff --git a/spec/finders/packages/maven/package_finder_spec.rb b/spec/finders/packages/maven/package_finder_spec.rb index 239e8c10f5212c7737b2e62188e8b11c965502dc..fe47157b8450d29b2ba86605e1a2feec7b381b8c 100644 --- a/spec/finders/packages/maven/package_finder_spec.rb +++ b/spec/finders/packages/maven/package_finder_spec.rb @@ -2,55 +2,54 @@ require 'spec_helper' RSpec.describe ::Packages::Maven::PackageFinder do - let(:user) { create(:user) } - let(:group) { create(:group) } - let(:project) { create(:project, namespace: group) } - let(:package) { create(:maven_package, project: project) } + let_it_be(:user) { create(:user) } + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, namespace: group) } + let_it_be(:package) { create(:maven_package, project: project) } + + let(:param_path) { nil } + let(:param_project) { nil } + let(:param_group) { nil } + let(:finder) { described_class.new(param_path, user, project: param_project, group: param_group) } before do group.add_developer(user) end describe '#execute!' do - context 'within the project' do - it 'returns a package' do - finder = described_class.new(package.maven_metadatum.path, user, project: project) - - expect(finder.execute!).to eq(package) - end + subject { finder.execute! } - it 'raises an error' do - finder = described_class.new('com/example/my-app/1.0-SNAPSHOT', user, project: project) + shared_examples 'handling valid and invalid paths' do + context 'with a valid path' do + let(:param_path) { package.maven_metadatum.path } - expect { finder.execute! }.to raise_error(ActiveRecord::RecordNotFound) + it { is_expected.to eq(package) } end - end - context 'across all projects' do - it 'returns a package' do - finder = described_class.new(package.maven_metadatum.path, user) + context 'with an invalid path' do + let(:param_path) { 'com/example/my-app/1.0-SNAPSHOT' } - expect(finder.execute!).to eq(package) + it 'raises an error' do + expect { subject }.to raise_error(ActiveRecord::RecordNotFound) + end end + end - it 'raises an error' do - finder = described_class.new('com/example/my-app/1.0-SNAPSHOT', user) + context 'within the project' do + let(:param_project) { project } - expect { finder.execute! }.to raise_error(ActiveRecord::RecordNotFound) - end + it_behaves_like 'handling valid and invalid paths' end context 'within a group' do - it 'returns a package' do - finder = described_class.new(package.maven_metadatum.path, user, group: group) + let(:param_group) { group } - expect(finder.execute!).to eq(package) - end + it_behaves_like 'handling valid and invalid paths' + end + context 'across all projects' do it 'raises an error' do - finder = described_class.new('com/example/my-app/1.0-SNAPSHOT', user, group: group) - - expect { finder.execute! }.to raise_error(ActiveRecord::RecordNotFound) + expect { subject }.to raise_error(ActiveRecord::RecordNotFound) end end end