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_project_packages_spec.rb')
-rw-r--r--spec/requests/api/npm_project_packages_spec.rb24
1 files changed, 22 insertions, 2 deletions
diff --git a/spec/requests/api/npm_project_packages_spec.rb b/spec/requests/api/npm_project_packages_spec.rb
index 8c0b9572af3..340420e46e0 100644
--- a/spec/requests/api/npm_project_packages_spec.rb
+++ b/spec/requests/api/npm_project_packages_spec.rb
@@ -2,8 +2,7 @@
require 'spec_helper'
-RSpec.describe API::NpmProjectPackages, feature_category: :package_registry,
- quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/418757' do
+RSpec.describe API::NpmProjectPackages, feature_category: :package_registry do
include ExclusiveLeaseHelpers
include_context 'npm api setup'
@@ -72,6 +71,27 @@ RSpec.describe API::NpmProjectPackages, feature_category: :package_registry,
it_behaves_like 'enqueue a worker to sync a metadata cache'
end
end
+
+ context 'when user is not authorized after exception was raised' do
+ let(:exception) { Rack::Timeout::RequestTimeoutException.new('Request ran for longer than 60000ms') }
+
+ subject { get(url) }
+
+ before do
+ project.add_developer(user)
+ end
+
+ it 'correctly reports an exception', :aggregate_failures do
+ allow_next_instance_of(Packages::Npm::GenerateMetadataService) do |instance|
+ allow(instance).to receive(:execute).and_raise(exception)
+ end
+
+ allow(Gitlab::Auth::UniqueIpsLimiter).to receive(:limit_user!)
+ .and_invoke(-> { nil }, -> { raise Gitlab::Auth::UnauthorizedError })
+
+ subject
+ end
+ end
end
describe 'GET /api/v4/projects/:id/packages/npm/-/package/*package_name/dist-tags' do