diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-03-02 17:21:00 +0300 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-03-06 12:04:04 +0300 |
commit | 50c393e58b01ff25f60b03b7c8419941a3f892cd (patch) | |
tree | afc634a8feabce4fca4675e3a34ffff419e61848 /spec/services | |
parent | 79ea01bfaffa743e98716cf9f9f811c6843dea4b (diff) |
Remove duplication in process pipeline service specs
This will make it easier to extend this spec file to add new test
examples covering blocking manual actions.
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/ci/process_pipeline_service_spec.rb | 71 |
1 files changed, 33 insertions, 38 deletions
diff --git a/spec/services/ci/process_pipeline_service_spec.rb b/spec/services/ci/process_pipeline_service_spec.rb index 3ce904244b2..2c1e139d5c9 100644 --- a/spec/services/ci/process_pipeline_service_spec.rb +++ b/spec/services/ci/process_pipeline_service_spec.rb @@ -15,11 +15,11 @@ describe Ci::ProcessPipelineService, :services do describe '#execute' do context 'start queuing next builds' do before do - create(:ci_build, :created, pipeline: pipeline, name: 'linux', stage_idx: 0) - create(:ci_build, :created, pipeline: pipeline, name: 'mac', stage_idx: 0) - create(:ci_build, :created, pipeline: pipeline, name: 'rspec', stage_idx: 1) - create(:ci_build, :created, pipeline: pipeline, name: 'rubocop', stage_idx: 1) - create(:ci_build, :created, pipeline: pipeline, name: 'deploy', stage_idx: 2) + create_build('linux', stage_idx: 0) + create_build('mac', stage_idx: 0) + create_build('rspec', stage_idx: 1) + create_build('rubocop', stage_idx: 1) + create_build('deploy', stage_idx: 2) end it 'processes a pipeline' do @@ -49,8 +49,8 @@ describe Ci::ProcessPipelineService, :services do context 'custom stage with first job allowed to fail' do before do - create(:ci_build, :created, pipeline: pipeline, name: 'clean_job', stage_idx: 0, allow_failure: true) - create(:ci_build, :created, pipeline: pipeline, name: 'test_job', stage_idx: 1, allow_failure: true) + create_build('clean_job', stage_idx: 0, allow_failure: true) + create_build('test_job', stage_idx: 1, allow_failure: true) end it 'automatically triggers a next stage when build finishes' do @@ -64,13 +64,13 @@ describe Ci::ProcessPipelineService, :services do context 'properly creates builds when "when" is defined' do before do - create(:ci_build, :created, pipeline: pipeline, name: 'build', stage_idx: 0) - create(:ci_build, :created, pipeline: pipeline, name: 'test', stage_idx: 1) - create(:ci_build, :created, pipeline: pipeline, name: 'test_failure', stage_idx: 2, when: 'on_failure') - create(:ci_build, :created, pipeline: pipeline, name: 'deploy', stage_idx: 3) - create(:ci_build, :created, pipeline: pipeline, name: 'production', stage_idx: 3, when: 'manual', allow_failure: true) - create(:ci_build, :created, pipeline: pipeline, name: 'cleanup', stage_idx: 4, when: 'always') - create(:ci_build, :created, pipeline: pipeline, name: 'clear cache', stage_idx: 4, when: 'manual', allow_failure: true) + create_build('build', stage_idx: 0) + create_build('test', stage_idx: 1) + create_build('test_failure', stage_idx: 2, when: 'on_failure') + create_build('deploy', stage_idx: 3) + create_build('production', stage_idx: 3, when: 'manual', allow_failure: true) + create_build('cleanup', stage_idx: 4, when: 'always') + create_build('clear cache', stage_idx: 4, when: 'manual', allow_failure: true) end context 'when builds are successful' do @@ -222,9 +222,9 @@ describe Ci::ProcessPipelineService, :services do context 'when first stage has only manual jobs' do let(:builds) do - [create_build('build', 0, 'manual'), - create_build('check', 1), - create_build('test', 2)] + [create_build('build', stage_idx: 0, when: 'manual'), + create_build('check', stage_idx: 1), + create_build('test', stage_idx: 2)] end it 'starts from the second stage' do @@ -234,9 +234,9 @@ describe Ci::ProcessPipelineService, :services do context 'when second stage has only manual jobs' do let(:builds) do - [create_build('check', 0), - create_build('build', 1, 'manual'), - create_build('test', 2)] + [create_build('check', stage_idx: 0), + create_build('build', stage_idx: 1, when: 'manual'), + create_build('test', stage_idx: 2)] end it 'skips second stage and continues on third stage' do @@ -251,9 +251,9 @@ describe Ci::ProcessPipelineService, :services do context 'when second stage has only on_failure jobs' do let(:builds) do - [create_build('check', 0), - create_build('build', 1, 'on_failure'), - create_build('test', 2)] + [create_build('check', stage_idx: 0), + create_build('build', stage_idx: 1, when: 'on_failure'), + create_build('test', stage_idx: 2)] end it 'skips second stage and continues on third stage' do @@ -270,12 +270,12 @@ describe Ci::ProcessPipelineService, :services do context 'when failed build in the middle stage is retried' do context 'when failed build is the only unsuccessful build in the stage' do before do - create(:ci_build, :created, pipeline: pipeline, name: 'build:1', stage_idx: 0) - create(:ci_build, :created, pipeline: pipeline, name: 'build:2', stage_idx: 0) - create(:ci_build, :created, pipeline: pipeline, name: 'test:1', stage_idx: 1) - create(:ci_build, :created, pipeline: pipeline, name: 'test:2', stage_idx: 1) - create(:ci_build, :created, pipeline: pipeline, name: 'deploy:1', stage_idx: 2) - create(:ci_build, :created, pipeline: pipeline, name: 'deploy:2', stage_idx: 2) + create_build('build:1', stage_idx: 0) + create_build('build:2', stage_idx: 0) + create_build('test:1', stage_idx: 1) + create_build('test:2', stage_idx: 1) + create_build('deploy:1', stage_idx: 2) + create_build('deploy:2', stage_idx: 2) end it 'does trigger builds in the next stage' do @@ -312,8 +312,8 @@ describe Ci::ProcessPipelineService, :services do end before do - create(:ci_build, :created, pipeline: pipeline, name: 'linux', stage: 'build', stage_idx: 0) - create(:ci_build, :created, pipeline: pipeline, name: 'mac', stage: 'build', stage_idx: 0) + create_build('linux', stage: 'build', stage_idx: 0) + create_build('mac', stage: 'build', stage_idx: 0) end it 'processes the pipeline' do @@ -379,12 +379,7 @@ describe Ci::ProcessPipelineService, :services do delegate :manual_actions, to: :pipeline - def create_build(name, stage_idx, when_value = nil) - create(:ci_build, - :created, - pipeline: pipeline, - name: name, - stage_idx: stage_idx, - when: when_value) + def create_build(name, **opts) + create(:ci_build, :created, pipeline: pipeline, name: name, **opts) end end |