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:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-06 00:07:40 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-06 00:07:40 +0300
commit134fe182008dc13a16f12d723aa73771efb1a6a2 (patch)
tree727c94937346d31a5e2692546d16296f069d09fe /spec/requests
parent6a7cc8c14727f6fac64a5be6838764d8d5d41468 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests')
-rw-r--r--spec/requests/api/project_export_spec.rb27
1 files changed, 26 insertions, 1 deletions
diff --git a/spec/requests/api/project_export_spec.rb b/spec/requests/api/project_export_spec.rb
index 605ff888234..37f2cc85a50 100644
--- a/spec/requests/api/project_export_spec.rb
+++ b/spec/requests/api/project_export_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-describe API::ProjectExport do
+describe API::ProjectExport, :clean_gitlab_redis_cache do
set(:project) { create(:project) }
set(:project_none) { create(:project) }
set(:project_started) { create(:project) }
@@ -47,6 +47,19 @@ describe API::ProjectExport do
it_behaves_like '404 response'
end
+ shared_examples_for 'when rate limit is exceeded' do
+ before do
+ allow(::Gitlab::ApplicationRateLimiter).to receive(:throttled?).and_return(true)
+ end
+
+ it 'prevents requesting project export' do
+ request
+
+ expect(response).to have_gitlab_http_status(429)
+ expect(json_response['message']['error']).to eq('This endpoint has been requested too many times. Try again later.')
+ end
+ end
+
describe 'GET /projects/:project_id/export' do
shared_examples_for 'get project export status not found' do
it_behaves_like '404 response' do
@@ -219,6 +232,12 @@ describe API::ProjectExport do
let(:user) { admin }
it_behaves_like 'get project download by strategy'
+
+ context 'when rate limit is exceeded' do
+ let(:request) { get api(download_path, admin) }
+
+ include_examples 'when rate limit is exceeded'
+ end
end
context 'when user is a maintainer' do
@@ -329,6 +348,12 @@ describe API::ProjectExport do
let(:user) { admin }
it_behaves_like 'post project export start'
+
+ context 'when rate limit is exceeded' do
+ let(:request) { post api(path, admin) }
+
+ include_examples 'when rate limit is exceeded'
+ end
end
context 'when user is a maintainer' do