diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2019-01-14 14:41:12 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2019-01-14 14:41:12 +0100 |
commit | 0ea8c236c15eea3bd08f7cdd0e6d0cc4e82faef5 (patch) | |
tree | 276740c86392a15528b50388e8cfc72a96c49230 | |
parent | 67e90a123f4086b9110f081b204be2250459bbc7 (diff) | |
download | gitlab-ce-0ea8c236c15eea3bd08f7cdd0e6d0cc4e82faef5.tar.gz |
Add more specs for only/except policy config entry
-rw-r--r-- | lib/gitlab/ci/config/entry/policy.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/entry/policy_spec.rb | 52 |
2 files changed, 51 insertions, 3 deletions
diff --git a/lib/gitlab/ci/config/entry/policy.rb b/lib/gitlab/ci/config/entry/policy.rb index fae6deede8b..bd571b8ea83 100644 --- a/lib/gitlab/ci/config/entry/policy.rb +++ b/lib/gitlab/ci/config/entry/policy.rb @@ -65,7 +65,7 @@ module Gitlab end def value - self.class.default(key: @key).yield_self do |default| + self.class.default(key: @subject.key).yield_self do |default| default.to_h.deep_merge(@subject.value.to_h) end end diff --git a/spec/lib/gitlab/ci/config/entry/policy_spec.rb b/spec/lib/gitlab/ci/config/entry/policy_spec.rb index 83001b7fdd8..d3e84298f1e 100644 --- a/spec/lib/gitlab/ci/config/entry/policy_spec.rb +++ b/spec/lib/gitlab/ci/config/entry/policy_spec.rb @@ -168,9 +168,57 @@ describe Gitlab::Ci::Config::Entry::Policy do end end + describe '#value' do + context 'when it is `only` policy' do + before do + entry.key = :only + end + + context 'when user overrides default values' do + let(:config) { { refs: %w[feature], variables: %w[$VARIABLE] } } + + it 'does not include default values' do + expect(entry.value).to eq config + end + end + + context 'when user does not override default values' do + let(:config) { { variables: %w[$VARIABLE] } } + + it 'includes default values' do + expect(entry.value).to eq(refs: %w[branches tags], + variables: %w[$VARIABLE]) + end + end + end + + context 'when it is `except` policy' do + before do + entry.key = :except + end + + context 'when user does not override default values' do + let(:config) { { variables: %w[$VARIABLE] } } + + it 'does not include default values' do + expect(entry.value).to eq config + end + end + end + end + describe '.default' do - it 'does not have a default value' do - expect(described_class.default).to be_nil + context 'when `only` policy is about to be fabricated' do + it 'has a default value' do + expect(described_class.default(key: :only)) + .to eq(refs: %w[branches tags]) + end + end + + context 'when `except` policy is about to be fabricated' do + it 'does not have a default value' do + expect(described_class.default(key: :except)).to be_nil + end end end end |