diff options
author | Rémy Coutable <remy@rymai.me> | 2018-01-29 15:57:49 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-01-29 15:57:49 +0000 |
commit | 55f28ebbf64d98389cb5f0491c031af5591b9f5e (patch) | |
tree | 0644e5d6b213eb9dfd3a12ad5830886500e243e0 /spec | |
parent | f195ac03f2306cab53d55984bc469591f22b7382 (diff) | |
parent | df44c59050b10d9312081782c1620aaf9969dcf8 (diff) | |
download | gitlab-ce-55f28ebbf64d98389cb5f0491c031af5591b9f5e.tar.gz |
Merge branch 'osw-fix-lost-diffs-when-source-branch-deleted' into 'master'
Close and do not reload MR diffs when source branch is deleted
Closes #37775
See merge request gitlab-org/gitlab-ce!16690
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/merge_request_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/merge_requests/refresh_service_spec.rb | 25 |
2 files changed, 24 insertions, 3 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index 15f9c68e400..eb9690df313 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -1539,7 +1539,7 @@ describe MergeRequest do expect { subject.reload_diff }.to change { subject.merge_request_diffs.count }.by(1) end - it "executs diff cache service" do + it "executes diff cache service" do expect_any_instance_of(MergeRequests::MergeRequestDiffCacheService).to receive(:execute).with(subject) subject.reload_diff diff --git a/spec/services/merge_requests/refresh_service_spec.rb b/spec/services/merge_requests/refresh_service_spec.rb index 7a01d3dd698..7c3374c6113 100644 --- a/spec/services/merge_requests/refresh_service_spec.rb +++ b/spec/services/merge_requests/refresh_service_spec.rb @@ -55,11 +55,12 @@ describe MergeRequests::RefreshService do before do allow(refresh_service).to receive(:execute_hooks) - refresh_service.execute(@oldrev, @newrev, 'refs/heads/master') - reload_mrs end it 'executes hooks with update action' do + refresh_service.execute(@oldrev, @newrev, 'refs/heads/master') + reload_mrs + expect(refresh_service).to have_received(:execute_hooks) .with(@merge_request, 'update', old_rev: @oldrev) @@ -72,6 +73,26 @@ describe MergeRequests::RefreshService do expect(@build_failed_todo).to be_done expect(@fork_build_failed_todo).to be_done end + + context 'when source branch ref does not exists' do + before do + DeleteBranchService.new(@project, @user).execute(@merge_request.source_branch) + end + + it 'closes MRs without source branch ref' do + expect { refresh_service.execute(@oldrev, @newrev, 'refs/heads/master') } + .to change { @merge_request.reload.state } + .from('opened') + .to('closed') + + expect(@fork_merge_request.reload).to be_open + end + + it 'does not change the merge request diff' do + expect { refresh_service.execute(@oldrev, @newrev, 'refs/heads/master') } + .not_to change { @merge_request.reload.merge_request_diff } + end + end end context 'when pipeline exists for the source branch' do |