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/support/shared_examples/services/packages_shared_examples.rb')
-rw-r--r--spec/support/shared_examples/services/packages_shared_examples.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/support/shared_examples/services/packages_shared_examples.rb b/spec/support/shared_examples/services/packages_shared_examples.rb
index fa307d2a9a6..4e34c191306 100644
--- a/spec/support/shared_examples/services/packages_shared_examples.rb
+++ b/spec/support/shared_examples/services/packages_shared_examples.rb
@@ -40,6 +40,19 @@ RSpec.shared_examples 'assigns the package creator' do
end
end
+RSpec.shared_examples 'assigns status to package' do
+ context 'with status param' do
+ let_it_be(:status) { 'hidden' }
+ let(:params) { super().merge(status: status) }
+
+ it 'assigns the status to the package' do
+ package = subject
+
+ expect(package.status).to eq(status)
+ end
+ end
+end
+
RSpec.shared_examples 'returns packages' do |container_type, user_type|
context "for #{user_type}" do
before do
@@ -190,6 +203,7 @@ RSpec.shared_examples 'filters on each package_type' do |is_project: false|
let_it_be(:package7) { create(:generic_package, project: project) }
let_it_be(:package8) { create(:golang_package, project: project) }
let_it_be(:package9) { create(:debian_package, project: project) }
+ let_it_be(:package9) { create(:rubygems_package, project: project) }
Packages::Package.package_types.keys.each do |package_type|
context "for package type #{package_type}" do
@@ -262,3 +276,41 @@ RSpec.shared_examples 'with versionless packages' do
end
end
end
+
+RSpec.shared_examples 'with status param' do
+ context 'hidden packages' do
+ let!(:hidden_package) { create(:maven_package, :hidden, project: project) }
+
+ shared_examples 'not including the hidden package' do
+ it 'does not return the package' do
+ subject
+
+ expect(json_response.map { |package| package['id'] }).not_to include(hidden_package.id)
+ end
+ end
+
+ context 'no status param' do
+ it_behaves_like 'not including the hidden package'
+ end
+
+ context 'with hidden status param' do
+ let(:params) { super().merge(status: 'hidden') }
+
+ it 'returns the package' do
+ subject
+
+ expect(json_response.map { |package| package['id'] }).to include(hidden_package.id)
+ end
+ end
+ end
+
+ context 'bad status param' do
+ let(:params) { super().merge(status: 'invalid') }
+
+ it 'returns the package' do
+ subject
+
+ expect(response).to have_gitlab_http_status(:bad_request)
+ end
+ end
+end