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/requests/api/npm_group_packages_spec.rb')
-rw-r--r--spec/requests/api/npm_group_packages_spec.rb30
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