diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-05 21:07:40 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-05 21:07:40 +0000 |
commit | 134fe182008dc13a16f12d723aa73771efb1a6a2 (patch) | |
tree | 727c94937346d31a5e2692546d16296f069d09fe /spec/requests/api | |
parent | 6a7cc8c14727f6fac64a5be6838764d8d5d41468 (diff) | |
download | gitlab-ce-134fe182008dc13a16f12d723aa73771efb1a6a2.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/api')
-rw-r--r-- | spec/requests/api/project_export_spec.rb | 27 |
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 |