Add specs for pipeline builder repository validator
This commit is contained in:
parent
652ecff91b
commit
39f05fd85e
1 changed files with 60 additions and 0 deletions
|
@ -0,0 +1,60 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Gitlab::Ci::Pipeline::Chain::Validate::Repository do
|
||||
set(:project) { create(:project, :repository) }
|
||||
set(:user) { create(:user) }
|
||||
|
||||
let(:command) do
|
||||
double('command', project: project, current_user: user)
|
||||
end
|
||||
|
||||
let!(:step) { described_class.new(pipeline, command) }
|
||||
|
||||
before do
|
||||
step.perform!
|
||||
end
|
||||
|
||||
context 'when pipeline ref and sha exists' do
|
||||
let(:pipeline) do
|
||||
build_stubbed(:ci_pipeline, ref: 'master', sha: '123', project: project)
|
||||
end
|
||||
|
||||
it 'does not break the chain' do
|
||||
expect(step.break?).to be false
|
||||
end
|
||||
|
||||
it 'does not append pipeline errors' do
|
||||
expect(pipeline.errors).to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
context 'when pipeline ref does not exist' do
|
||||
let(:pipeline) do
|
||||
build_stubbed(:ci_pipeline, ref: 'something', project: project)
|
||||
end
|
||||
|
||||
it 'breaks the chain' do
|
||||
expect(step.break?).to be true
|
||||
end
|
||||
|
||||
it 'adds an error about missing ref' do
|
||||
expect(pipeline.errors.to_a)
|
||||
.to include 'Reference not found'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when pipeline does not have SHA set' do
|
||||
let(:pipeline) do
|
||||
build_stubbed(:ci_pipeline, ref: 'master', sha: nil, project: project)
|
||||
end
|
||||
|
||||
it 'breaks the chain' do
|
||||
expect(step.break?).to be true
|
||||
end
|
||||
|
||||
it 'adds an error about missing SHA' do
|
||||
expect(pipeline.errors.to_a)
|
||||
.to include 'Commit not found'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue