diff options
| author | Douwe Maan <douwe@gitlab.com> | 2017-11-03 15:33:53 +0000 |
|---|---|---|
| committer | Douwe Maan <douwe@gitlab.com> | 2017-11-03 15:33:53 +0000 |
| commit | e19f54ca41f094920bccdecc6f2b82b8dda2f4e7 (patch) | |
| tree | 7cbf497b8f158dfe03ae68d762abfb07a98880c3 /spec/services | |
| parent | 9f07033839e2c5fdb6ab429cbafab56d6f46b007 (diff) | |
| parent | 0f1d6402b9ebf25d5ddd09effe6dce1902ae476b (diff) | |
| download | gitlab-ce-e19f54ca41f094920bccdecc6f2b82b8dda2f4e7.tar.gz | |
Merge branch 'bvl-unlink-fixes' into 'master'
This fixes some bugs related to forked projects of which the source was deleted.
Closes #39667
See merge request gitlab-org/gitlab-ce!15150
Diffstat (limited to 'spec/services')
| -rw-r--r-- | spec/services/projects/unlink_fork_service_spec.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/services/projects/unlink_fork_service_spec.rb b/spec/services/projects/unlink_fork_service_spec.rb index 50d3a4ec982..2bba71fef4f 100644 --- a/spec/services/projects/unlink_fork_service_spec.rb +++ b/spec/services/projects/unlink_fork_service_spec.rb @@ -12,6 +12,9 @@ describe Projects::UnlinkForkService do 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_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) } + let(:mr_close_service) { MergeRequests::CloseService.new(forked_project, user) } before do @@ -22,9 +25,14 @@ describe Projects::UnlinkForkService do it 'close all pending merge requests' do expect(mr_close_service).to receive(:execute).with(merge_request) + expect(mr_close_service).to receive(:execute).with(merge_request2) subject.execute end + + it 'does not close merge requests for the project being unlinked' do + expect(mr_close_service).not_to receive(:execute).with(merge_request_in_fork) + end end it 'remove fork relation' do @@ -53,4 +61,14 @@ describe Projects::UnlinkForkService do expect(source.forks_count).to be_zero end + + context 'when the original project was deleted' do + it 'does not fail when the original project is deleted' do + source = forked_project.forked_from_project + source.destroy + forked_project.reload + + expect { subject.execute }.not_to raise_error + end + end end |
