diff options
Diffstat (limited to 'spec/services/projects/create_service_spec.rb')
-rw-r--r-- | spec/services/projects/create_service_spec.rb | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index 6c0e6654622..f7da6f75141 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -40,6 +40,48 @@ RSpec.describe Projects::CreateService, '#execute' do end end + describe 'setting name and path' do + subject(:project) { create_project(user, opts) } + + context 'when both are set' do + let(:opts) { { name: 'one', path: 'two' } } + + it 'keeps them as specified' do + expect(project.name).to eq('one') + expect(project.path).to eq('two') + end + end + + context 'when path is set' do + let(:opts) { { path: 'one.two_three-four' } } + + it 'sets name == path' do + expect(project.path).to eq('one.two_three-four') + expect(project.name).to eq(project.path) + end + end + + context 'when name is a valid path' do + let(:opts) { { name: 'one.two_three-four' } } + + it 'sets path == name' do + expect(project.name).to eq('one.two_three-four') + expect(project.path).to eq(project.name) + end + end + + context 'when name is not a valid path' do + let(:opts) { { name: 'one.two_three-four and five' } } + + # TODO: Retained for backwards compatibility. Remove in API v5. + # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/52725 + it 'parameterizes the name' do + expect(project.name).to eq('one.two_three-four and five') + expect(project.path).to eq('one-two_three-four-and-five') + end + end + end + context 'user namespace' do it do project = create_project(user, opts) @@ -419,7 +461,7 @@ RSpec.describe Projects::CreateService, '#execute' do context 'when another repository already exists on disk' do let(:opts) do { - name: 'Existing', + name: 'existing', namespace_id: user.namespace.id } end |