diff options
Diffstat (limited to 'spec/services/projects/gitlab_projects_import_service_spec.rb')
-rw-r--r-- | spec/services/projects/gitlab_projects_import_service_spec.rb | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/spec/services/projects/gitlab_projects_import_service_spec.rb b/spec/services/projects/gitlab_projects_import_service_spec.rb index 880b2aae66a..ee1a886f5d6 100644 --- a/spec/services/projects/gitlab_projects_import_service_spec.rb +++ b/spec/services/projects/gitlab_projects_import_service_spec.rb @@ -4,7 +4,8 @@ describe Projects::GitlabProjectsImportService do set(:namespace) { create(:namespace) } let(:path) { 'test-path' } let(:file) { fixture_file_upload(Rails.root + 'spec/fixtures/doc_sample.txt', 'text/plain') } - let(:import_params) { { namespace_id: namespace.id, path: path, file: file } } + let(:overwrite) { false } + let(:import_params) { { namespace_id: namespace.id, path: path, file: file, overwrite: overwrite } } subject { described_class.new(namespace.owner, import_params) } describe '#execute' do @@ -37,5 +38,28 @@ describe Projects::GitlabProjectsImportService do expect(project.import_data.data['override_params']['description']).to eq('Hello') end end + + context 'when there is a project with the same path' do + let(:existing_project) { create(:project, namespace: namespace) } + let(:path) { existing_project.path} + + it 'does not create the project' do + project = subject.execute + + expect(project).to be_invalid + expect(project).not_to be_persisted + end + + context 'when overwrite param is set' do + let(:overwrite) { true } + + it 'creates a project in a temporary full_path' do + project = subject.execute + + expect(project).to be_valid + expect(project).to be_persisted + end + end + end end end |