diff options
Diffstat (limited to 'spec/requests/api/npm_instance_packages_spec.rb')
-rw-r--r-- | spec/requests/api/npm_instance_packages_spec.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/requests/api/npm_instance_packages_spec.rb b/spec/requests/api/npm_instance_packages_spec.rb index 97de7fa9e52..4f965d86d66 100644 --- a/spec/requests/api/npm_instance_packages_spec.rb +++ b/spec/requests/api/npm_instance_packages_spec.rb @@ -45,6 +45,14 @@ RSpec.describe API::NpmInstancePackages, feature_category: :package_registry do end 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 @@ -57,12 +65,31 @@ RSpec.describe API::NpmInstancePackages, feature_category: :package_registry do it_behaves_like 'handling create dist tag requests', scope: :instance do let(:url) { api("/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("/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: :instance do let(:url) { api("/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("/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/packages/npm/-/npm/v1/security/advisories/bulk' do |