diff options
Diffstat (limited to 'spec/services/projects/fork_service_spec.rb')
-rw-r--r-- | spec/services/projects/fork_service_spec.rb | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/spec/services/projects/fork_service_spec.rb b/spec/services/projects/fork_service_spec.rb index 0c109e26a6a..b759830d603 100644 --- a/spec/services/projects/fork_service_spec.rb +++ b/spec/services/projects/fork_service_spec.rb @@ -53,7 +53,7 @@ describe Projects::ForkService do # This test is here because we had a bug where the from-project lost its # avatar after being forked. - # https://gitlab.com/gitlab-org/gitlab-ce/issues/26158 + # https://gitlab.com/gitlab-org/gitlab-foss/issues/26158 it "after forking the from-project still has its avatar" do # If we do not fork the project first we cannot detect the bug. expect(to_project).to be_persisted @@ -119,6 +119,7 @@ describe Projects::ForkService do context 'repository in legacy storage already exists' do let(:repository_storage) { 'default' } let(:repository_storage_path) { Gitlab.config.repositories.storages[repository_storage].legacy_disk_path } + let(:params) { { namespace: @to_user.namespace } } before do stub_application_setting(hashed_storage_enabled: false) @@ -129,12 +130,21 @@ describe Projects::ForkService do gitlab_shell.remove_repository(repository_storage, "#{@to_user.namespace.full_path}/#{@from_project.path}") end + subject { fork_project(@from_project, @to_user, params) } + it 'does not allow creation' do - to_project = fork_project(@from_project, @to_user, namespace: @to_user.namespace) + expect(subject).not_to be_persisted + expect(subject.errors.messages).to have_key(:base) + expect(subject.errors.messages[:base].first).to match('There is already a repository with that name on disk') + end - expect(to_project).not_to be_persisted - expect(to_project.errors.messages).to have_key(:base) - expect(to_project.errors.messages[:base].first).to match('There is already a repository with that name on disk') + context 'when repository disk validation is explicitly skipped' do + let(:params) { super().merge(skip_disk_validation: true) } + + it 'allows fork project creation' do + expect(subject).to be_persisted + expect(subject.errors.messages).to be_empty + end end end |