diff options
| author | Sean McGivern <sean@mcgivern.me.uk> | 2018-10-19 11:01:44 +0000 |
|---|---|---|
| committer | Sean McGivern <sean@mcgivern.me.uk> | 2018-10-19 11:01:44 +0000 |
| commit | ffc505d2170fff93607e37f3a634984b90549436 (patch) | |
| tree | 62c9cd0a044b226dae32fcb9ad61cfb5bba8ee07 /spec/services/projects | |
| parent | e2b8337f12a45219548c37287e3929e751e4704d (diff) | |
| parent | f3fba178b931cd2ba67f81ee667893cb84e7d42f (diff) | |
| download | gitlab-ce-ffc505d2170fff93607e37f3a634984b90549436.tar.gz | |
Merge branch 'bvl-remove-forked-project-link' into 'master'
Remove ForkedProjectLink model
Closes #38883
See merge request gitlab-org/gitlab-ce!22226
Diffstat (limited to 'spec/services/projects')
| -rw-r--r-- | spec/services/projects/create_service_spec.rb | 11 | ||||
| -rw-r--r-- | spec/services/projects/destroy_service_spec.rb | 1 | ||||
| -rw-r--r-- | spec/services/projects/fork_service_spec.rb | 25 | ||||
| -rw-r--r-- | spec/services/projects/unlink_fork_service_spec.rb | 9 |
4 files changed, 36 insertions, 10 deletions
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index a80c8a7fe51..08de27ca44a 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -295,6 +295,17 @@ describe Projects::CreateService, '#execute' do end end + it 'calls the passed block' do + fake_block = double('block') + opts[:relations_block] = fake_block + + expect_next_instance_of(Project) do |project| + expect(fake_block).to receive(:call).with(project) + end + + create_project(user, opts) + end + it 'writes project full path to .git/config' do project = create_project(user, opts) rugged = rugged_repo(project.repository) diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb index 1d31d26f418..12ddf8447bd 100644 --- a/spec/services/projects/destroy_service_spec.rb +++ b/spec/services/projects/destroy_service_spec.rb @@ -259,7 +259,6 @@ describe Projects::DestroyService do before do project.lfs_objects << create(:lfs_object) - forked_project.forked_project_link.destroy forked_project.reload end diff --git a/spec/services/projects/fork_service_spec.rb b/spec/services/projects/fork_service_spec.rb index 947cb61038d..a3d24ae312a 100644 --- a/spec/services/projects/fork_service_spec.rb +++ b/spec/services/projects/fork_service_spec.rb @@ -31,6 +31,10 @@ describe Projects::ForkService do it { is_expected.not_to be_persisted } it { expect(subject.errors[:forked_from_project_id]).to eq(['is forbidden']) } + + it 'does not create a fork network' do + expect { subject }.not_to change { @from_project.reload.fork_network } + end end describe "successfully creates project in the user namespace" do @@ -70,6 +74,12 @@ describe Projects::ForkService do expect(fork_network.root_project).to eq(@from_project) expect(fork_network.projects).to contain_exactly(@from_project, to_project) end + + it 'imports the repository of the forked project' do + to_project = fork_project(@from_project, @to_user, repository: true) + + expect(to_project.empty_repo?).to be_falsy + end end context 'creating a fork of a fork' do @@ -247,11 +257,13 @@ describe Projects::ForkService do context 'if project is not forked' do it 'creates fork relation' do - expect(fork_to_project.forked?).to be false + expect(fork_to_project.forked?).to be_falsy expect(forked_from_project(fork_to_project)).to be_nil subject.execute(fork_to_project) + fork_to_project.reload + expect(fork_to_project.forked?).to be true expect(forked_from_project(fork_to_project)).to eq fork_from_project expect(fork_to_project.forked_from_project).to eq fork_from_project @@ -272,6 +284,17 @@ describe Projects::ForkService do .to change { fork_to_project.lfs_objects_projects.count } .to(0) end + + context 'if the fork is not allowed' do + let(:fork_from_project) { create(:project, :private) } + + it 'does not delete the LFS objects' do + create(:lfs_objects_project, project: fork_to_project) + + expect { subject.execute(fork_to_project) } + .not_to change { fork_to_project.lfs_objects_projects.size } + end + end end end end diff --git a/spec/services/projects/unlink_fork_service_spec.rb b/spec/services/projects/unlink_fork_service_spec.rb index 3ec6139bfa6..014aab44281 100644 --- a/spec/services/projects/unlink_fork_service_spec.rb +++ b/spec/services/projects/unlink_fork_service_spec.rb @@ -5,13 +5,12 @@ describe Projects::UnlinkForkService do subject { described_class.new(forked_project, user) } - let(:fork_link) { forked_project.forked_project_link } let(:project) { create(:project, :public) } let(:forked_project) { fork_project(project, user) } let(:user) { create(:user) } context 'with opened merge request on the source project' do - let(:merge_request) { create(:merge_request, source_project: forked_project, target_project: fork_link.forked_from_project) } + let(:merge_request) { create(:merge_request, source_project: forked_project, target_project: forked_project.forked_from_project) } let(:merge_request2) { create(:merge_request, source_project: forked_project, target_project: fork_project(project)) } let(:merge_request_in_fork) { create(:merge_request, source_project: forked_project, target_project: forked_project) } @@ -35,12 +34,6 @@ describe Projects::UnlinkForkService do end end - it 'remove fork relation' do - expect(forked_project.forked_project_link).to receive(:destroy) - - subject.execute - end - it 'removes the link to the fork network' do expect(forked_project.fork_network_member).to be_present expect(forked_project.fork_network).to be_present |
