Skip to content
Snippets Groups Projects
Verified Commit 56876070 authored by Matija Čupić's avatar Matija Čupić
Browse files

Fix nil take regression

parent 2fd73269
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -1487,6 +1487,9 @@ class Project < ApplicationRecord
end
 
def pipeline_for(ref, sha = nil, id = nil)
sha ||= commit(ref).try(:sha)
return unless sha
if id.present?
pipelines_for(ref, sha).find_by(id: id)
else
Loading
Loading
@@ -1494,11 +1497,7 @@ class Project < ApplicationRecord
end
end
 
def pipelines_for(ref, sha = nil)
sha ||= commit(ref).try(:sha)
return unless sha
def pipelines_for(ref, sha)
ci_pipelines.order(id: :desc).where(sha: sha, ref: ref)
end
 
Loading
Loading
Loading
Loading
@@ -1156,7 +1156,6 @@ describe Project do
 
describe '#pipeline_for' do
let(:project) { create(:project, :repository) }
let!(:pipeline) { create_pipeline(project) }
 
shared_examples 'giving the correct pipeline' do
it { is_expected.to eq(pipeline) }
Loading
Loading
@@ -1168,24 +1167,34 @@ describe Project do
end
end
 
context 'with explicit sha' do
subject { project.pipeline_for('master', pipeline.sha) }
context 'with a matching pipeline' do
let!(:pipeline) { create_pipeline(project) }
context 'with explicit sha' do
subject { project.pipeline_for('master', pipeline.sha) }
it_behaves_like 'giving the correct pipeline'
context 'with supplied id' do
let!(:other_pipeline) { create_pipeline(project) }
 
it_behaves_like 'giving the correct pipeline'
subject { project.pipeline_for('master', pipeline.sha, other_pipeline.id) }
 
context 'with supplied id' do
let!(:other_pipeline) { create_pipeline(project) }
it { is_expected.to eq(other_pipeline) }
end
end
 
subject { project.pipeline_for('master', pipeline.sha, other_pipeline.id) }
context 'with implicit sha' do
subject { project.pipeline_for('master') }
 
it { is_expected.to eq(other_pipeline) }
it_behaves_like 'giving the correct pipeline'
end
end
 
context 'with implicit sha' do
context 'when there is no matching pipeline' do
subject { project.pipeline_for('master') }
 
it_behaves_like 'giving the correct pipeline'
it { is_expected.to be_nil }
end
end
 
Loading
Loading
@@ -1194,11 +1203,9 @@ describe Project do
let!(:pipeline) { create_pipeline(project) }
let!(:other_pipeline) { create_pipeline(project) }
 
context 'with implicit sha' do
subject { project.pipelines_for('master') }
subject { project.pipelines_for(project.default_branch, project.commit.sha) }
 
it { is_expected.to contain_exactly(pipeline, other_pipeline) }
end
it { is_expected.to contain_exactly(pipeline, other_pipeline) }
end
 
describe '#builds_enabled' do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment