diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb index e05adc5cd0ed168eb7bf09b248554e200f7c3a22..6868fed711e02b933ac27cf9488c59eed76dac14 100644 --- a/app/helpers/diff_helper.rb +++ b/app/helpers/diff_helper.rb @@ -227,7 +227,7 @@ def render_fork_suggestion end def conflicts(allow_tree_conflicts: false) - return unless merge_request.cannot_be_merged? + return unless merge_request.cannot_be_merged? && merge_request.source_branch_exists? && merge_request.target_branch_exists? conflicts_service = MergeRequests::Conflicts::ListService.new(merge_request, allow_tree_conflicts: allow_tree_conflicts) # rubocop:disable CodeReuse/ServiceClass diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb index 78c0d0a2b119163f99c60384e9f21e42537eec4b..a46f8c13f002744d9a97446f373d5304d8496f1a 100644 --- a/spec/helpers/diff_helper_spec.rb +++ b/spec/helpers/diff_helper_spec.rb @@ -483,7 +483,18 @@ end describe '#conflicts' do - let(:merge_request) { instance_double(MergeRequest, cannot_be_merged?: true) } + let(:merge_request) do + instance_double( + MergeRequest, + cannot_be_merged?: cannot_be_merged?, + source_branch_exists?: source_branch_exists?, + target_branch_exists?: target_branch_exists? + ) + end + + let(:cannot_be_merged?) { true } + let(:source_branch_exists?) { true } + let(:target_branch_exists?) { true } let(:can_be_resolved_in_ui?) { true } let(:allow_tree_conflicts) { false } let(:files) { [instance_double(Gitlab::Conflict::File, path: 'a')] } @@ -508,7 +519,23 @@ end context 'when merge request can be merged' do - let(:merge_request) { instance_double(MergeRequest, cannot_be_merged?: false) } + let(:cannot_be_merged?) { false } + + it 'returns nil' do + expect(helper.conflicts).to be_nil + end + end + + context 'when source branch does not exist' do + let(:source_branch_exists?) { false } + + it 'returns nil' do + expect(helper.conflicts).to be_nil + end + end + + context 'when target branch does not exist' do + let(:target_branch_exists?) { false } it 'returns nil' do expect(helper.conflicts).to be_nil