diff options
Diffstat (limited to 'spec/presenters/ci/build_runner_presenter_spec.rb')
-rw-r--r-- | spec/presenters/ci/build_runner_presenter_spec.rb | 54 |
1 files changed, 32 insertions, 22 deletions
diff --git a/spec/presenters/ci/build_runner_presenter_spec.rb b/spec/presenters/ci/build_runner_presenter_spec.rb index 3430111ca9e..9ed8e3a4e0a 100644 --- a/spec/presenters/ci/build_runner_presenter_spec.rb +++ b/spec/presenters/ci/build_runner_presenter_spec.rb @@ -119,23 +119,23 @@ describe Ci::BuildRunnerPresenter do end describe '#git_depth' do - subject { presenter.git_depth } - let(:build) { create(:ci_build) } - it 'returns the correct git depth' do - is_expected.to eq(0) - end + subject(:git_depth) { presenter.git_depth } context 'when GIT_DEPTH variable is specified' do before do create(:ci_pipeline_variable, key: 'GIT_DEPTH', value: 1, pipeline: build.pipeline) end - it 'returns the correct git depth' do - is_expected.to eq(1) + it 'returns its value' do + expect(git_depth).to eq(1) end end + + it 'defaults to git depth setting for the project' do + expect(git_depth).to eq(build.project.default_git_depth) + end end describe '#refspecs' do @@ -144,24 +144,24 @@ describe Ci::BuildRunnerPresenter do let(:build) { create(:ci_build) } it 'returns the correct refspecs' do - is_expected.to contain_exactly('+refs/tags/*:refs/tags/*', - '+refs/heads/*:refs/remotes/origin/*') + is_expected.to contain_exactly("+refs/heads/#{build.ref}:refs/remotes/origin/#{build.ref}") end - context 'when GIT_DEPTH variable is specified' do - before do - create(:ci_pipeline_variable, key: 'GIT_DEPTH', value: 1, pipeline: build.pipeline) - end + context 'when ref is tag' do + let(:build) { create(:ci_build, :tag) } it 'returns the correct refspecs' do - is_expected.to contain_exactly("+refs/heads/#{build.ref}:refs/remotes/origin/#{build.ref}") + is_expected.to contain_exactly("+refs/tags/#{build.ref}:refs/tags/#{build.ref}") end - context 'when ref is tag' do - let(:build) { create(:ci_build, :tag) } + context 'when GIT_DEPTH is zero' do + before do + create(:ci_pipeline_variable, key: 'GIT_DEPTH', value: 0, pipeline: build.pipeline) + end it 'returns the correct refspecs' do - is_expected.to contain_exactly("+refs/tags/#{build.ref}:refs/tags/#{build.ref}") + is_expected.to contain_exactly('+refs/tags/*:refs/tags/*', + '+refs/heads/*:refs/remotes/origin/*') end end end @@ -173,17 +173,27 @@ describe Ci::BuildRunnerPresenter do it 'returns the correct refspecs' do is_expected - .to contain_exactly('+refs/heads/*:refs/remotes/origin/*', - '+refs/tags/*:refs/tags/*', - '+refs/merge-requests/1/head:refs/merge-requests/1/head') + .to contain_exactly('+refs/merge-requests/1/head:refs/merge-requests/1/head') + end + + context 'when GIT_DEPTH is zero' do + before do + create(:ci_pipeline_variable, key: 'GIT_DEPTH', value: 0, pipeline: build.pipeline) + end + + it 'returns the correct refspecs' do + is_expected + .to contain_exactly('+refs/merge-requests/1/head:refs/merge-requests/1/head', + '+refs/heads/*:refs/remotes/origin/*', + '+refs/tags/*:refs/tags/*') + end end context 'when pipeline is legacy detached merge request pipeline' do let(:merge_request) { create(:merge_request, :with_legacy_detached_merge_request_pipeline) } it 'returns the correct refspecs' do - is_expected.to contain_exactly('+refs/tags/*:refs/tags/*', - '+refs/heads/*:refs/remotes/origin/*') + is_expected.to contain_exactly("+refs/heads/#{build.ref}:refs/remotes/origin/#{build.ref}") end end end |