diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-08-25 10:27:00 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-08-25 10:27:00 +0200 |
commit | fcb4d1f80945cbcdfbdb73e102d046447f55e5b5 (patch) | |
tree | 575e03a5ca43bf8af583d958fccc817315dd5400 /spec | |
parent | 8c409fc40ba4bf2e7fe0c8458fd2b59c09bd123a (diff) | |
download | gitlab-ce-fcb4d1f80945cbcdfbdb73e102d046447f55e5b5.tar.gz |
Implement complex only/except policy CI/CD config
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/ci/config/entry/policy_spec.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/lib/gitlab/ci/config/entry/policy_spec.rb b/spec/lib/gitlab/ci/config/entry/policy_spec.rb index fe9a053c46c..69095144daa 100644 --- a/spec/lib/gitlab/ci/config/entry/policy_spec.rb +++ b/spec/lib/gitlab/ci/config/entry/policy_spec.rb @@ -57,5 +57,31 @@ describe Gitlab::Ci::Config::Entry::Policy do end context 'when using complex policy' do + context 'when it is an empty hash' do + let(:config) { { } } + + it 'reports an error about configuration not being present' do + expect(entry.errors).to include /can't be blank/ + end + end + + context 'when it contains unknown keys' do + let(:config) { { refs: ['something'], invalid: 'master' } } + + it 'is not valid entry' do + expect(entry).not_to be_valid + expect(entry.errors) + .to include /policy config contains unknown keys: invalid/ + end + end + end + + context 'when policy strategy does not match' do + let(:config) { 'string strategy' } + + it 'returns information about errors' do + expect(entry.errors) + .to include 'policy has to be either an array of conditions or a hash' + end end end |