summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-22 14:26:33 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-22 14:26:33 +0200
commitbc2348f2e4365099e2a99df3d8e2a55fe7d138f4 (patch)
tree7020b2383e86fb74e8c54bd932456e3292479148 /spec/lib
parent05ce8a118743a5d896b6b8cc99b40af214ac8cd1 (diff)
downloadgitlab-ce-bc2348f2e4365099e2a99df3d8e2a55fe7d138f4.tar.gz
Return default config value when entry is undefined
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/ci/config/node/configurable_spec.rb2
-rw-r--r--spec/lib/gitlab/ci/config/node/undefined_spec.rb25
-rw-r--r--spec/lib/gitlab/ci/config_spec.rb46
3 files changed, 42 insertions, 31 deletions
diff --git a/spec/lib/gitlab/ci/config/node/configurable_spec.rb b/spec/lib/gitlab/ci/config/node/configurable_spec.rb
index 9bbda6e7396..2ac436cb4b2 100644
--- a/spec/lib/gitlab/ci/config/node/configurable_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/configurable_spec.rb
@@ -10,7 +10,7 @@ describe Gitlab::Ci::Config::Node::Configurable do
describe 'configured nodes' do
before do
node.class_eval do
- allow_node :object, Object, description: 'test object'
+ node :object, Object, description: 'test object'
end
end
diff --git a/spec/lib/gitlab/ci/config/node/undefined_spec.rb b/spec/lib/gitlab/ci/config/node/undefined_spec.rb
index 2d01a8a6ec8..5ded0504a3f 100644
--- a/spec/lib/gitlab/ci/config/node/undefined_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/undefined_spec.rb
@@ -1,23 +1,34 @@
require 'spec_helper'
describe Gitlab::Ci::Config::Node::Undefined do
- let(:entry) { described_class.new('some value') }
+ let(:undefined) { described_class.new(entry) }
+ let(:entry) { Class.new }
describe '#leaf?' do
it 'is leaf node' do
- expect(entry).to be_leaf
+ expect(undefined).to be_leaf
end
end
- describe '#any_method' do
- it 'responds with nil' do
- expect(entry.any_method).to be nil
+ describe '#valid?' do
+ it 'is always valid' do
+ expect(undefined).to be_valid
+ end
+ end
+
+ describe '#errors' do
+ it 'is does not contain errors' do
+ expect(undefined.errors).to be_empty
end
end
describe '#value' do
- it 'returns configured value' do
- expect(entry.value).to eq 'some value'
+ before do
+ allow(entry).to receive(:default).and_return('some value')
+ end
+
+ it 'returns default value for entry that is undefined' do
+ expect(undefined.value).to eq 'some value'
end
end
end
diff --git a/spec/lib/gitlab/ci/config_spec.rb b/spec/lib/gitlab/ci/config_spec.rb
index 2a5d132db7b..bc5a5e43103 100644
--- a/spec/lib/gitlab/ci/config_spec.rb
+++ b/spec/lib/gitlab/ci/config_spec.rb
@@ -40,38 +40,38 @@ describe Gitlab::Ci::Config do
end
end
end
+ end
- context 'when config is invalid' do
- context 'when yml is incorrect' do
- let(:yml) { '// invalid' }
+ context 'when config is invalid' do
+ context 'when yml is incorrect' do
+ let(:yml) { '// invalid' }
- describe '.new' do
- it 'raises error' do
- expect { config }.to raise_error(
- Gitlab::Ci::Config::Loader::FormatError,
- /Invalid configuration format/
- )
- end
+ describe '.new' do
+ it 'raises error' do
+ expect { config }.to raise_error(
+ Gitlab::Ci::Config::Loader::FormatError,
+ /Invalid configuration format/
+ )
end
end
+ end
- context 'when config logic is incorrect' do
- let(:yml) { 'before_script: "ls"' }
+ context 'when config logic is incorrect' do
+ let(:yml) { 'before_script: "ls"' }
- describe '#valid?' do
- it 'is not valid' do
- expect(config).not_to be_valid
- end
+ describe '#valid?' do
+ it 'is not valid' do
+ expect(config).not_to be_valid
+ end
- it 'has errors' do
- expect(config.errors).not_to be_empty
- end
+ it 'has errors' do
+ expect(config.errors).not_to be_empty
end
+ end
- describe '#errors' do
- it 'returns an array of strings' do
- expect(config.errors).to all(be_an_instance_of(String))
- end
+ describe '#errors' do
+ it 'returns an array of strings' do
+ expect(config.errors).to all(be_an_instance_of(String))
end
end
end