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/services/projects/create_service_spec.rb')
-rw-r--r--spec/services/projects/create_service_spec.rb39
1 files changed, 35 insertions, 4 deletions
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb
index 59dee209ff9..e112c1e2497 100644
--- a/spec/services/projects/create_service_spec.rb
+++ b/spec/services/projects/create_service_spec.rb
@@ -4,7 +4,6 @@ require 'spec_helper'
RSpec.describe Projects::CreateService, '#execute' do
include ExternalAuthorizationServiceHelpers
- include GitHelpers
let(:user) { create :user }
let(:project_name) { 'GitLab' }
@@ -254,6 +253,39 @@ RSpec.describe Projects::CreateService, '#execute' do
end
end
+ context 'user with project limit' do
+ let_it_be(:user_with_projects_limit) { create(:user, projects_limit: 0) }
+
+ let(:params) { opts.merge!(namespace_id: target_namespace.id) }
+
+ subject(:project) { create_project(user_with_projects_limit, params) }
+
+ context 'under personal namespace' do
+ let(:target_namespace) { user_with_projects_limit.namespace }
+
+ it 'cannot create a project' do
+ expect(project.errors.errors.length).to eq 1
+ expect(project.errors.messages[:limit_reached].first).to eq(_('Personal project creation is not allowed. Please contact your administrator with questions'))
+ end
+ end
+
+ context 'under group namespace' do
+ let_it_be(:group) do
+ create(:group).tap do |group|
+ group.add_owner(user_with_projects_limit)
+ end
+ end
+
+ let(:target_namespace) { group }
+
+ it 'can create a project' do
+ expect(project).to be_valid
+ expect(project).to be_saved
+ expect(project.errors.errors.length).to eq 0
+ end
+ end
+ end
+
context 'membership overrides', :sidekiq_inline do
let_it_be(:group) { create(:group, :private) }
let_it_be(:subgroup_for_projects) { create(:group, :private, parent: group) }
@@ -769,11 +801,10 @@ RSpec.describe Projects::CreateService, '#execute' do
create_project(user, opts)
end
- it 'writes project full path to .git/config' do
+ it 'writes project full path to gitaly' do
project = create_project(user, opts)
- rugged = rugged_repo(project.repository)
- expect(rugged.config['gitlab.fullpath']).to eq project.full_path
+ expect(project.repository.full_path).to eq project.full_path
end
it 'triggers PostCreationWorker' do