diff options
author | Mark Chao <mchao@gitlab.com> | 2018-06-30 12:31:36 +0800 |
---|---|---|
committer | Mark Chao <mchao@gitlab.com> | 2018-07-02 19:42:23 +0800 |
commit | d907b894bed848e5c60f101a3cd3172df35dd27a (patch) | |
tree | 666c0c04be2d09fe9e081686c5d07f0a3b41146b /spec/models/merge_request_spec.rb | |
parent | 3c0ff4ddb9a910a2da0472cfc6ced745a421a623 (diff) | |
download | gitlab-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.rb | 16 |
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 |