Use shared examples for populate spec
This commit is contained in:
parent
c418d68765
commit
c89e57842e
|
@ -157,6 +157,16 @@ describe Gitlab::Ci::Pipeline::Chain::Populate do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when variables policy is specified' do
|
context 'when variables policy is specified' do
|
||||||
|
shared_examples_for 'populates pipeline according to used policies' do
|
||||||
|
it 'populates pipeline according to used policies' do
|
||||||
|
step.perform!
|
||||||
|
|
||||||
|
expect(pipeline.stages.size).to eq 1
|
||||||
|
expect(pipeline.stages.first.builds.size).to eq 1
|
||||||
|
expect(pipeline.stages.first.builds.first.name).to eq 'rspec'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when using only/except build policies' do
|
context 'when using only/except build policies' do
|
||||||
let(:config) do
|
let(:config) do
|
||||||
{ rspec: { script: 'rspec', stage: 'test', only: ['master'] },
|
{ rspec: { script: 'rspec', stage: 'test', only: ['master'] },
|
||||||
|
@ -167,28 +177,16 @@ describe Gitlab::Ci::Pipeline::Chain::Populate do
|
||||||
build(:ci_pipeline, ref: 'master', config: config)
|
build(:ci_pipeline, ref: 'master', config: config)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'populates pipeline according to used policies' do
|
it_behaves_like 'populates pipeline according to used policies'
|
||||||
step.perform!
|
|
||||||
|
|
||||||
expect(pipeline.stages.size).to eq 1
|
|
||||||
expect(pipeline.stages.first.builds.size).to eq 1
|
|
||||||
expect(pipeline.stages.first.builds.first.name).to eq 'rspec'
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when variables expression is specified' do
|
context 'when variables expression is specified' do
|
||||||
let(:config) do
|
|
||||||
{ rspec: { script: 'rspec', only: { variables: ["$CI_PIPELINE_IID == '1'"] } },
|
|
||||||
prod: { script: 'cap prod', only: { variables: ["$CI_PIPELINE_IID == '1000'"] } } }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when pipeline iid is the subject' do
|
context 'when pipeline iid is the subject' do
|
||||||
it 'populates pipeline according to used policies' do
|
let(:config) do
|
||||||
step.perform!
|
{ rspec: { script: 'rspec', only: { variables: ["$CI_PIPELINE_IID == '1'"] } },
|
||||||
|
prod: { script: 'cap prod', only: { variables: ["$CI_PIPELINE_IID == '1000'"] } } }
|
||||||
expect(pipeline.stages.size).to eq 1
|
|
||||||
expect(pipeline.stages.first.builds.size).to eq 1
|
|
||||||
expect(pipeline.stages.first.builds.first.name).to eq 'rspec'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'populates pipeline according to used policies'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,7 +15,7 @@ shared_examples_for 'AtomicInternalId' do |validate_presence: true|
|
||||||
instance.valid?
|
instance.valid?
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when presence validattion is required' do
|
context 'when presence validation is required' do
|
||||||
before do
|
before do
|
||||||
skip unless validate_presence
|
skip unless validate_presence
|
||||||
end
|
end
|
||||||
|
@ -25,7 +25,7 @@ shared_examples_for 'AtomicInternalId' do |validate_presence: true|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when presence validattion is not required' do
|
context 'when presence validation is not required' do
|
||||||
before do
|
before do
|
||||||
skip if validate_presence
|
skip if validate_presence
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue