diff options
| author | Douwe Maan <douwe@gitlab.com> | 2016-04-04 15:37:08 +0000 |
|---|---|---|
| committer | Douwe Maan <douwe@gitlab.com> | 2016-04-04 15:37:08 +0000 |
| commit | f505c753b02a7a0b41cc42a85ac15017af4ed86f (patch) | |
| tree | d1ea34378c2fcf74db0c0b1937f14d3df84d4ff4 /spec/services | |
| parent | 5e8740eef01ff5263a8b75a96d2109dfae2c63c0 (diff) | |
| parent | a6b5b50e14885a82530794c6ea35c940305244dd (diff) | |
| download | gitlab-ce-f505c753b02a7a0b41cc42a85ac15017af4ed86f.tar.gz | |
Merge branch 'fix_remove_fork_link' into 'master'
Remove fork link closes all merge requests opened on source project
Currently, if you:
- create a fork
- open a merge request on the source project
- remove the fork link
The created MR cannot be closed.
With this MR, all pending MR is closed when the fork link is removed.
See merge request !3189
Diffstat (limited to 'spec/services')
| -rw-r--r-- | spec/services/projects/unlink_fork_service_spec.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/services/projects/unlink_fork_service_spec.rb b/spec/services/projects/unlink_fork_service_spec.rb new file mode 100644 index 00000000000..23f5555d3e0 --- /dev/null +++ b/spec/services/projects/unlink_fork_service_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +describe Projects::UnlinkForkService, services: true do + subject { Projects::UnlinkForkService.new(fork_project, user) } + + let(:fork_link) { create(:forked_project_link) } + let(:fork_project) { fork_link.forked_to_project } + let(:user) { create(:user) } + + context 'with opened merge request on the source project' do + let(:merge_request) { create(:merge_request, source_project: fork_project, target_project: fork_link.forked_from_project) } + let(:mr_close_service) { MergeRequests::CloseService.new(fork_project, user) } + + before do + allow(MergeRequests::CloseService).to receive(:new). + with(fork_project, user). + and_return(mr_close_service) + end + + it 'close all pending merge requests' do + expect(mr_close_service).to receive(:execute).with(merge_request) + + subject.execute + end + end + + it 'remove fork relation' do + expect(fork_project.forked_project_link).to receive(:destroy) + + subject.execute + end +end |
