summaryrefslogtreecommitdiff
path: root/spec/models/merge_request_spec.rb
diff options
context:
space:
mode:
authorMark Chao <mchao@gitlab.com>2018-06-30 12:31:36 +0800
committerMark Chao <mchao@gitlab.com>2018-07-02 19:42:23 +0800
commitd907b894bed848e5c60f101a3cd3172df35dd27a (patch)
tree666c0c04be2d09fe9e081686c5d07f0a3b41146b /spec/models/merge_request_spec.rb
parent3c0ff4ddb9a910a2da0472cfc6ced745a421a623 (diff)
downloadgitlab-ce-d907b894bed848e5c60f101a3cd3172df35dd27a.tar.gz
Fix notify_conflict? raising exception when branches do not exist
repository.can_be_merged? can raise error if diff_head_sha or target_branch are absent, therefore check those explicitly.
Diffstat (limited to 'spec/models/merge_request_spec.rb')
-rw-r--r--spec/models/merge_request_spec.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index ec72fefd137..8c6b411ec9a 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -2190,6 +2190,22 @@ describe MergeRequest do
end
end
end
+
+ context 'source branch is missing' do
+ subject { create(:merge_request, :invalid, :opened, merge_status: :unchecked, target_branch: 'master') }
+
+ before do
+ allow(subject.project.repository).to receive(:can_be_merged?).and_call_original
+ end
+
+ it 'does not raise error' do
+ expect(notification_service).not_to receive(:merge_request_unmergeable)
+ expect(todo_service).not_to receive(:merge_request_became_unmergeable)
+
+ expect { subject.mark_as_unmergeable }.not_to raise_error
+ expect(subject.cannot_be_merged?).to eq(true)
+ end
+ end
end
describe 'check_state?' do