diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-14 15:09:03 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-14 15:09:03 +0300 |
commit | 5366964a10484c2783a646b35a6da9eece01b242 (patch) | |
tree | 4a5a7a289d44e63d96a50a6a64db6e16b871f19c /spec/services/ci/create_pipeline_service | |
parent | 733befe96ad19f5a02e442c4a9cc8059d3aabbda (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/services/ci/create_pipeline_service')
-rw-r--r-- | spec/services/ci/create_pipeline_service/needs_spec.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/spec/services/ci/create_pipeline_service/needs_spec.rb b/spec/services/ci/create_pipeline_service/needs_spec.rb index 757c076f9e6..17b9cf80cc1 100644 --- a/spec/services/ci/create_pipeline_service/needs_spec.rb +++ b/spec/services/ci/create_pipeline_service/needs_spec.rb @@ -175,5 +175,67 @@ describe Ci::CreatePipelineService do .to eq('jobs:test_a:needs:need artifacts should be a boolean value') end end + + context 'when needs is empty array' do + let(:config) do + <<~YAML + build_a: + stage: build + script: ls + test_a: + stage: test + script: ls + test_b: + stage: test + script: ls + needs: [] + deploy_a: + stage: deploy + script: ls + needs: [test_a] + deploy_b: + stage: deploy + script: ls + when: manual + needs: [] + YAML + end + + it 'creates a pipeline with build_a and test_b pending; deploy_b manual' do + processables = pipeline.processables + + build_a = processables.find { |processable| processable.name == 'build_a' } + test_a = processables.find { |processable| processable.name == 'test_a' } + test_b = processables.find { |processable| processable.name == 'test_b' } + deploy_a = processables.find { |processable| processable.name == 'deploy_a' } + deploy_b = processables.find { |processable| processable.name == 'deploy_b' } + + expect(pipeline).to be_persisted + expect(build_a.status).to eq('pending') + expect(test_a.status).to eq('created') + expect(test_b.status).to eq('pending') + expect(deploy_a.status).to eq('created') + expect(deploy_b.status).to eq('manual') + end + end + + context 'when needs is empty hash' do + let(:config) do + <<~YAML + regular_job: + stage: build + script: echo 'hello' + invalid_dag_job: + stage: test + script: ls + needs: {} + YAML + end + + it 'raises error' do + expect(pipeline.yaml_errors) + .to eq('jobs:invalid_dag_job:needs config can not be an empty hash') + end + end end end |