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/controllers/projects_controller_spec.rb')
-rw-r--r--spec/controllers/projects_controller_spec.rb55
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