diff options
Diffstat (limited to 'spec/requests/api/npm_group_packages_spec.rb')
-rw-r--r-- | spec/requests/api/npm_group_packages_spec.rb | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/spec/requests/api/npm_group_packages_spec.rb b/spec/requests/api/npm_group_packages_spec.rb index d97c7682b4b..431c59cf1b8 100644 --- a/spec/requests/api/npm_group_packages_spec.rb +++ b/spec/requests/api/npm_group_packages_spec.rb @@ -2,7 +2,8 @@ require 'spec_helper' -RSpec.describe API::NpmGroupPackages, feature_category: :package_registry do +RSpec.describe API::NpmGroupPackages, feature_category: :package_registry, + quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/418757' do using RSpec::Parameterized::TableSyntax include_context 'npm api setup' @@ -152,6 +153,14 @@ RSpec.describe API::NpmGroupPackages, feature_category: :package_registry do it_behaves_like 'returning response status', params[:expected_status] end end + + context 'when metadata cache exists' do + let_it_be(:npm_metadata_cache) { create(:npm_metadata_cache, package_name: package.name, project_id: project.id) } + + subject { get(url) } + + it_behaves_like 'generates metadata response "on-the-fly"' + end end describe 'GET /api/v4/packages/npm/-/package/*package_name/dist-tags' do @@ -164,12 +173,31 @@ RSpec.describe API::NpmGroupPackages, feature_category: :package_registry do it_behaves_like 'handling create dist tag requests', scope: :group do let(:url) { api("/groups/#{group.id}/-/packages/npm/-/package/#{package_name}/dist-tags/#{tag_name}") } end + + it_behaves_like 'enqueue a worker to sync a metadata cache' do + let(:tag_name) { 'test' } + let(:url) { api("/groups/#{group.id}/-/packages/npm/-/package/#{package_name}/dist-tags/#{tag_name}") } + let(:env) { { 'api.request.body': package.version } } + let(:headers) { build_token_auth_header(personal_access_token.token) } + + subject { put(url, env: env, headers: headers) } + end end describe 'DELETE /api/v4/packages/npm/-/package/*package_name/dist-tags/:tag' do it_behaves_like 'handling delete dist tag requests', scope: :group do let(:url) { api("/groups/#{group.id}/-/packages/npm/-/package/#{package_name}/dist-tags/#{tag_name}") } end + + it_behaves_like 'enqueue a worker to sync a metadata cache' do + let_it_be(:package_tag) { create(:packages_tag, package: package) } + + let(:tag_name) { package_tag.name } + let(:url) { api("/groups/#{group.id}/-/packages/npm/-/package/#{package_name}/dist-tags/#{tag_name}") } + let(:headers) { build_token_auth_header(personal_access_token.token) } + + subject { delete(url, headers: headers) } + end end describe 'POST /api/v4/groups/:id/-/packages/npm/-/npm/v1/security/advisories/bulk' do |