From 1871decffa5f1373b21e44bcfb8d68ce8c4acb05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oc=C3=A9ane=20Legrand?= <oceane.legrand@scania.com> Date: Thu, 6 Mar 2025 07:24:26 +0000 Subject: [PATCH] Exclude Conan package files with recipe revisions from package presenter --- .../packages/conan/package_presenter.rb | 2 +- .../packages/conan/package_presenter_spec.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/presenters/packages/conan/package_presenter.rb b/app/presenters/packages/conan/package_presenter.rb index 709876176109..beb4715444d9 100644 --- a/app/presenters/packages/conan/package_presenter.rb +++ b/app/presenters/packages/conan/package_presenter.rb @@ -80,7 +80,7 @@ def map_package_files def package_files return unless @package - @package.installable_package_files.preload_conan_file_metadata + @package.installable_package_files.without_conan_recipe_revision.preload_conan_file_metadata end strong_memoize_attr :package_files diff --git a/spec/presenters/packages/conan/package_presenter_spec.rb b/spec/presenters/packages/conan/package_presenter_spec.rb index ecca9e6e9260..2a0b8b49cf3b 100644 --- a/spec/presenters/packages/conan/package_presenter_spec.rb +++ b/spec/presenters/packages/conan/package_presenter_spec.rb @@ -41,6 +41,15 @@ end end + shared_examples 'excludes files with recipe revisions' do + context 'when there are files with recipe revisions' do + let_it_be(:recipe_revision) { create(:conan_recipe_revision, package: package) } + let_it_be(:conan_package_file) { create(:conan_package_file, :conan_recipe_file, package: package, conan_recipe_revision: recipe_revision) } + + it { is_expected.to eq(expected_result) } + end + end + describe '#recipe_urls' do subject { presenter.recipe_urls } @@ -57,6 +66,8 @@ it { is_expected.to eq(expected_result) } + it_behaves_like 'excludes files with recipe revisions' + context 'when there are multiple channels for the same package' do let(:conan_metadatum) { create(:conan_metadatum, package_channel: 'newest') } let!(:newest_package) { create(:conan_package, name: package.name, version: package.version, project: project, conan_metadatum: conan_metadatum) } @@ -97,6 +108,8 @@ end it { is_expected.to eq(expected_result) } + + it_behaves_like 'excludes files with recipe revisions' end end @@ -130,6 +143,8 @@ it { is_expected.to eq(expected_result) } + it_behaves_like 'excludes files with recipe revisions' + context 'with package_scope of project' do # #package_file_url checks for params[:id] let(:params) do @@ -198,6 +213,8 @@ it { is_expected.to eq(expected_result) } + it_behaves_like 'excludes files with recipe revisions' + context 'when requested with invalid reference' do let(:reference) { 'invalid' } -- GitLab