summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/ci/config/entry/key_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-14 00:06:24 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-14 00:06:24 +0000
commiteed996ac33a60d5fd8315a62fec8beaa8e907e69 (patch)
treed8077bee50b58a170ae1a950ae76e3011c78a415 /spec/lib/gitlab/ci/config/entry/key_spec.rb
parentb42f312df5aee0f1b832b69171e9d1cf92eb7416 (diff)
downloadgitlab-ce-eed996ac33a60d5fd8315a62fec8beaa8e907e69.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib/gitlab/ci/config/entry/key_spec.rb')
-rw-r--r--spec/lib/gitlab/ci/config/entry/key_spec.rb94
1 files changed, 26 insertions, 68 deletions
diff --git a/spec/lib/gitlab/ci/config/entry/key_spec.rb b/spec/lib/gitlab/ci/config/entry/key_spec.rb
index a7874447725..327607e2266 100644
--- a/spec/lib/gitlab/ci/config/entry/key_spec.rb
+++ b/spec/lib/gitlab/ci/config/entry/key_spec.rb
@@ -6,38 +6,38 @@ describe Gitlab::Ci::Config::Entry::Key do
let(:entry) { described_class.new(config) }
describe 'validations' do
- shared_examples 'key with slash' do
- it 'is invalid' do
- expect(entry).not_to be_valid
- end
+ it_behaves_like 'key entry validations', 'simple key'
- it 'reports errors with config value' do
- expect(entry.errors).to include 'key config cannot contain the "/" character'
- end
- end
+ context 'when entry config value is correct' do
+ context 'when key is a hash' do
+ let(:config) { { files: ['test'], prefix: 'something' } }
- shared_examples 'key with only dots' do
- it 'is invalid' do
- expect(entry).not_to be_valid
- end
+ describe '#value' do
+ it 'returns key value' do
+ expect(entry.value).to match(config)
+ end
+ end
- it 'reports errors with config value' do
- expect(entry.errors).to include 'key config cannot be "." or ".."'
+ describe '#valid?' do
+ it 'is valid' do
+ expect(entry).to be_valid
+ end
+ end
end
- end
- context 'when entry config value is correct' do
- let(:config) { 'test' }
+ context 'when key is a symbol' do
+ let(:config) { :key }
- describe '#value' do
- it 'returns key value' do
- expect(entry.value).to eq 'test'
+ describe '#value' do
+ it 'returns key value' do
+ expect(entry.value).to eq(config.to_s)
+ end
end
- end
- describe '#valid?' do
- it 'is valid' do
- expect(entry).to be_valid
+ describe '#valid?' do
+ it 'is valid' do
+ expect(entry).to be_valid
+ end
end
end
end
@@ -47,53 +47,11 @@ describe Gitlab::Ci::Config::Entry::Key do
describe '#errors' do
it 'saves errors' do
- expect(entry.errors)
- .to include 'key config should be a string or symbol'
+ expect(entry.errors.first)
+ .to match /should be a hash, a string or a symbol/
end
end
end
-
- context 'when entry value contains slash' do
- let(:config) { 'key/with/some/slashes' }
-
- it_behaves_like 'key with slash'
- end
-
- context 'when entry value contains URI encoded slash (%2F)' do
- let(:config) { 'key%2Fwith%2Fsome%2Fslashes' }
-
- it_behaves_like 'key with slash'
- end
-
- context 'when entry value is a dot' do
- let(:config) { '.' }
-
- it_behaves_like 'key with only dots'
- end
-
- context 'when entry value is two dots' do
- let(:config) { '..' }
-
- it_behaves_like 'key with only dots'
- end
-
- context 'when entry value is a URI encoded dot (%2E)' do
- let(:config) { '%2e' }
-
- it_behaves_like 'key with only dots'
- end
-
- context 'when entry value is two URI encoded dots (%2E)' do
- let(:config) { '%2E%2e' }
-
- it_behaves_like 'key with only dots'
- end
-
- context 'when entry value is one dot and one URI encoded dot' do
- let(:config) { '.%2e' }
-
- it_behaves_like 'key with only dots'
- end
end
describe '.default' do