Commit 659fff8f authored by David Fernandez's avatar David Fernandez

Merge branch '349184-add-hidden-package-to-generic-package' into 'master'

Allow hidden package files to be downloaded

See merge request gitlab-org/gitlab!77291
parents 1897c391 e6eecff1
...@@ -7,7 +7,7 @@ class Packages::Package < ApplicationRecord ...@@ -7,7 +7,7 @@ class Packages::Package < ApplicationRecord
include Gitlab::Utils::StrongMemoize include Gitlab::Utils::StrongMemoize
DISPLAYABLE_STATUSES = [:default, :error].freeze DISPLAYABLE_STATUSES = [:default, :error].freeze
INSTALLABLE_STATUSES = [:default].freeze INSTALLABLE_STATUSES = [:default, :hidden].freeze
enum package_type: { enum package_type: {
maven: 1, maven: 1,
......
...@@ -59,7 +59,7 @@ RSpec.describe Packages::Go::PackageFinder do ...@@ -59,7 +59,7 @@ RSpec.describe Packages::Go::PackageFinder do
let(:version_name) { version.name } let(:version_name) { version.name }
before do before do
package.update_column(:status, 1) package.update_column(:status, :error)
end end
it { is_expected.to eq(nil) } it { is_expected.to eq(nil) }
......
...@@ -39,7 +39,7 @@ RSpec.describe ::Packages::Maven::PackageFinder do ...@@ -39,7 +39,7 @@ RSpec.describe ::Packages::Maven::PackageFinder do
let(:param_path) { package.maven_metadatum.path } let(:param_path) { package.maven_metadatum.path }
before do before do
package.update_column(:status, 1) package.update_column(:status, :error)
end end
it { expect { subject }.to raise_error(ActiveRecord::RecordNotFound) } it { expect { subject }.to raise_error(ActiveRecord::RecordNotFound) }
......
...@@ -52,7 +52,7 @@ RSpec.describe ::Packages::Npm::PackageFinder do ...@@ -52,7 +52,7 @@ RSpec.describe ::Packages::Npm::PackageFinder do
context 'with an uninstallable package' do context 'with an uninstallable package' do
before do before do
package.update_column(:status, 1) package.update_column(:status, :error)
end end
it { is_expected.to be_empty } it { is_expected.to be_empty }
......
...@@ -36,7 +36,7 @@ RSpec.describe Packages::Nuget::PackageFinder do ...@@ -36,7 +36,7 @@ RSpec.describe Packages::Nuget::PackageFinder do
context 'with an uninstallable package' do context 'with an uninstallable package' do
before do before do
package1.update_column(:status, 1) package1.update_column(:status, :error)
end end
it { is_expected.to contain_exactly(package2) } it { is_expected.to contain_exactly(package2) }
......
...@@ -839,6 +839,7 @@ RSpec.describe Packages::Package, type: :model do ...@@ -839,6 +839,7 @@ RSpec.describe Packages::Package, type: :model do
end end
context 'status scopes' do context 'status scopes' do
let_it_be(:default_package) { create(:maven_package, :default) }
let_it_be(:hidden_package) { create(:maven_package, :hidden) } let_it_be(:hidden_package) { create(:maven_package, :hidden) }
let_it_be(:processing_package) { create(:maven_package, :processing) } let_it_be(:processing_package) { create(:maven_package, :processing) }
let_it_be(:error_package) { create(:maven_package, :error) } let_it_be(:error_package) { create(:maven_package, :error) }
...@@ -856,11 +857,15 @@ RSpec.describe Packages::Package, type: :model do ...@@ -856,11 +857,15 @@ RSpec.describe Packages::Package, type: :model do
describe '.installable' do describe '.installable' do
subject { described_class.installable } subject { described_class.installable }
it 'does not include non-displayable packages', :aggregate_failures do it 'does not include non-installable packages', :aggregate_failures do
is_expected.not_to include(error_package) is_expected.not_to include(error_package)
is_expected.not_to include(hidden_package)
is_expected.not_to include(processing_package) is_expected.not_to include(processing_package)
end end
it 'includes installable packages', :aggregate_failures do
is_expected.to include(default_package)
is_expected.to include(hidden_package)
end
end end
describe '.with_status' do describe '.with_status' do
......
...@@ -574,6 +574,27 @@ RSpec.describe API::GenericPackages do ...@@ -574,6 +574,27 @@ RSpec.describe API::GenericPackages do
end end
end end
context 'with package status' do
where(:package_status, :expected_status) do
:default | :success
:hidden | :success
:error | :not_found
end
with_them do
before do
project.add_developer(user)
package.update!(status: package_status)
end
it "responds with #{params[:expected_status]}" do
download_file(personal_access_token_header)
expect(response).to have_gitlab_http_status(expected_status)
end
end
end
context 'event tracking' do context 'event tracking' do
let(:snowplow_gitlab_standard_context) { { project: project, namespace: project.namespace, user: user } } let(:snowplow_gitlab_standard_context) { { project: project, namespace: project.namespace, user: user } }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment