diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 11:18:50 +0000 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /spec/controllers/projects_controller_spec.rb | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) | |
download | gitlab-ce-8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781.tar.gz |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'spec/controllers/projects_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects_controller_spec.rb | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 6c00dad8bb7..8aae9ef85be 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -2,7 +2,7 @@ require('spec_helper') -describe ProjectsController do +RSpec.describe ProjectsController do include ExternalAuthorizationServiceHelpers include ProjectForksHelper @@ -41,6 +41,27 @@ describe ProjectsController do end end end + + context 'with the new_create_project_ui experiment enabled and the user is part of the control group' do + before do + stub_experiment(new_create_project_ui: true) + stub_experiment_for_user(new_create_project_ui: false) + allow_any_instance_of(described_class).to receive(:experimentation_subject_id).and_return('uuid') + end + + it 'passes the right tracking parameters to the frontend' do + get(:new) + + expect(Gon.tracking_data).to eq( + { + category: 'Manage::Import::Experiment::NewCreateProjectUi', + action: 'click_tab', + label: 'uuid', + property: 'control_group' + } + ) + end + end end end @@ -359,6 +380,15 @@ describe ProjectsController do end end end + + context 'namespace storage limit' do + let_it_be(:project) { create(:project, :public, :repository ) } + let(:namespace) { project.namespace } + + subject { get :show, params: { namespace_id: namespace, id: project } } + + it_behaves_like 'namespace storage limit alert' + end end describe 'GET edit' do @@ -1160,16 +1190,16 @@ describe ProjectsController do shared_examples 'rate limits project export endpoint' do before do - allow(::Gitlab::ApplicationRateLimiter) - .to receive(:throttled?) - .and_return(true) + allow(Gitlab::ApplicationRateLimiter) + .to receive(:increment) + .and_return(Gitlab::ApplicationRateLimiter.rate_limits["project_#{action}".to_sym][:threshold] + 1) end it 'prevents requesting project export' do post action, params: { namespace_id: project.namespace, id: project } - expect(flash[:alert]).to eq('This endpoint has been requested too many times. Try again later.') - expect(response).to have_gitlab_http_status(:found) + expect(response.body).to eq('This endpoint has been requested too many times. Try again later.') + expect(response).to have_gitlab_http_status(:too_many_requests) end end @@ -1226,7 +1256,18 @@ describe ProjectsController do end context 'when the endpoint receives requests above the limit', :clean_gitlab_redis_cache do - include_examples 'rate limits project export endpoint' + before do + allow(Gitlab::ApplicationRateLimiter) + .to receive(:increment) + .and_return(Gitlab::ApplicationRateLimiter.rate_limits[:project_download_export][:threshold] + 1) + end + + it 'prevents requesting project export' do + post action, params: { namespace_id: project.namespace, id: project } + + expect(response.body).to eq('This endpoint has been requested too many times. Try again later.') + expect(response).to have_gitlab_http_status(:too_many_requests) + end end end end |