diff options
Diffstat (limited to 'spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb')
-rw-r--r-- | spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb index d849c768a3c..0ce8b80902e 100644 --- a/spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb @@ -50,8 +50,8 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Seed do it 'sets the seeds in the command object' do run_chain - expect(command.stage_seeds).to all(be_a Gitlab::Ci::Pipeline::Seed::Base) - expect(command.stage_seeds.count).to eq 1 + expect(command.pipeline_seed).to be_a(Gitlab::Ci::Pipeline::Seed::Pipeline) + expect(command.pipeline_seed.size).to eq 1 end context 'when no ref policy is specified' do @@ -63,16 +63,18 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Seed do } end - it 'correctly fabricates a stage seeds object' do + it 'correctly fabricates stages and builds' do run_chain - seeds = command.stage_seeds - expect(seeds.size).to eq 2 - expect(seeds.first.attributes[:name]).to eq 'test' - expect(seeds.second.attributes[:name]).to eq 'deploy' - expect(seeds.dig(0, 0, :name)).to eq 'rspec' - expect(seeds.dig(0, 1, :name)).to eq 'spinach' - expect(seeds.dig(1, 0, :name)).to eq 'production' + seed = command.pipeline_seed + + expect(seed.stages.size).to eq 2 + expect(seed.size).to eq 3 + expect(seed.stages.first.name).to eq 'test' + expect(seed.stages.second.name).to eq 'deploy' + expect(seed.stages[0].statuses[0].name).to eq 'rspec' + expect(seed.stages[0].statuses[1].name).to eq 'spinach' + expect(seed.stages[1].statuses[0].name).to eq 'production' end end @@ -88,14 +90,14 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Seed do } end - it 'returns stage seeds only assigned to master' do + it 'returns pipeline seed with jobs only assigned to master' do run_chain - seeds = command.stage_seeds + seed = command.pipeline_seed - expect(seeds.size).to eq 1 - expect(seeds.first.attributes[:name]).to eq 'test' - expect(seeds.dig(0, 0, :name)).to eq 'spinach' + expect(seed.size).to eq 1 + expect(seed.stages.first.name).to eq 'test' + expect(seed.stages[0].statuses[0].name).to eq 'spinach' end end @@ -109,14 +111,14 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Seed do } end - it 'returns stage seeds only assigned to schedules' do + it 'returns pipeline seed with jobs only assigned to schedules' do run_chain - seeds = command.stage_seeds + seed = command.pipeline_seed - expect(seeds.size).to eq 1 - expect(seeds.first.attributes[:name]).to eq 'test' - expect(seeds.dig(0, 0, :name)).to eq 'spinach' + expect(seed.size).to eq 1 + expect(seed.stages.first.name).to eq 'test' + expect(seed.stages[0].statuses[0].name).to eq 'spinach' end end @@ -141,11 +143,11 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Seed do it 'returns seeds for kubernetes dependent job' do run_chain - seeds = command.stage_seeds + seed = command.pipeline_seed - expect(seeds.size).to eq 2 - expect(seeds.dig(0, 0, :name)).to eq 'spinach' - expect(seeds.dig(1, 0, :name)).to eq 'production' + expect(seed.size).to eq 2 + expect(seed.stages[0].statuses[0].name).to eq 'spinach' + expect(seed.stages[1].statuses[0].name).to eq 'production' end end end @@ -154,10 +156,10 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Seed do it 'does not return seeds for kubernetes dependent job' do run_chain - seeds = command.stage_seeds + seed = command.pipeline_seed - expect(seeds.size).to eq 1 - expect(seeds.dig(0, 0, :name)).to eq 'spinach' + expect(seed.size).to eq 1 + expect(seed.stages[0].statuses[0].name).to eq 'spinach' end end end @@ -173,10 +175,10 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::Seed do it 'returns stage seeds only when variables expression is truthy' do run_chain - seeds = command.stage_seeds + seed = command.pipeline_seed - expect(seeds.size).to eq 1 - expect(seeds.dig(0, 0, :name)).to eq 'unit' + expect(seed.size).to eq 1 + expect(seed.stages[0].statuses[0].name).to eq 'unit' end end |