From 5d74c95c988cdd9c1c761de3a78c3dc191e4fe52 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Sun, 14 Apr 2019 07:26:03 -0700 Subject: Check that source and target branch exist This ensures the return value is consistent if the source and/or branch do not exist. --- app/services/compare_service.rb | 4 ++-- spec/controllers/projects/compare_controller_spec.rb | 2 +- spec/lib/gitlab/git/repository_spec.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/services/compare_service.rb b/app/services/compare_service.rb index 3adf8a0c1a1..3f0aedfbfb2 100644 --- a/app/services/compare_service.rb +++ b/app/services/compare_service.rb @@ -3,7 +3,7 @@ require 'securerandom' # Compare 2 refs for one repo or between repositories -# and return Gitlab::Git::Compare object that responds to commits and diffs +# and return Compare object that responds to commits and diffs class CompareService attr_reader :start_project, :start_ref_name @@ -15,7 +15,7 @@ class CompareService def execute(target_project, target_ref, base_sha: nil, straight: false) raw_compare = target_project.repository.compare_source_branch(target_ref, start_project.repository, start_ref_name, straight: straight) - return unless raw_compare + return unless raw_compare && raw_compare.base && raw_compare.head Compare.new(raw_compare, target_project, diff --git a/spec/controllers/projects/compare_controller_spec.rb b/spec/controllers/projects/compare_controller_spec.rb index 1818809518d..92380a2bf09 100644 --- a/spec/controllers/projects/compare_controller_spec.rb +++ b/spec/controllers/projects/compare_controller_spec.rb @@ -82,7 +82,7 @@ describe Projects::CompareController do show_request expect(response).to be_success - expect(assigns(:diffs).diff_files.to_a).to eq([]) + expect(assigns(:diffs)).to eq([]) expect(assigns(:commits)).to eq([]) end end diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb index a98b04feb9c..aa800db4f16 100644 --- a/spec/lib/gitlab/git/repository_spec.rb +++ b/spec/lib/gitlab/git/repository_spec.rb @@ -1977,7 +1977,7 @@ describe Gitlab::Git::Repository, :seed_helper do expect(compare.commits.count).to be > 0 end - it 'returns nil when source ref does not exist' do + it 'returns empty commits when source ref does not exist' do compare = repository.compare_source_branch('master', repository, 'non-existent-branch', straight: false) expect(compare.commits).to be_empty -- cgit v1.2.1