summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-08-25 10:27:00 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-08-25 10:27:00 +0200
commitfcb4d1f80945cbcdfbdb73e102d046447f55e5b5 (patch)
tree575e03a5ca43bf8af583d958fccc817315dd5400 /spec
parent8c409fc40ba4bf2e7fe0c8458fd2b59c09bd123a (diff)
downloadgitlab-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.rb26
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