summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-07-07 12:41:31 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-07-07 12:55:10 +0200
commitfea7762485c75003381891bc892bc6049f8a2105 (patch)
tree0b6bc76431454377235ba9cc87331750b4ec1709 /spec/lib/gitlab
parentb0ae0d730f4eda34cd712477a828dddd888ba474 (diff)
downloadgitlab-ce-fea7762485c75003381891bc892bc6049f8a2105.tar.gz
Delegate methods to default CI entry if undefined
Diffstat (limited to 'spec/lib/gitlab')
-rw-r--r--spec/lib/gitlab/ci/config/node/factory_spec.rb6
-rw-r--r--spec/lib/gitlab/ci/config/node/undefined_spec.rb59
2 files changed, 48 insertions, 17 deletions
diff --git a/spec/lib/gitlab/ci/config/node/factory_spec.rb b/spec/lib/gitlab/ci/config/node/factory_spec.rb
index 5a26bb6df02..5b856d44989 100644
--- a/spec/lib/gitlab/ci/config/node/factory_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/factory_spec.rb
@@ -9,11 +9,13 @@ describe Gitlab::Ci::Config::Node::Factory do
it 'fabricates entry with attributes set' do
fabricated = described_class
.fabricate(entry_class, ['ls'],
- parent: factory, key: :test)
+ parent: true, key: :test)
- expect(fabricated.parent).to be factory
+ expect(fabricated.parent).to be true
expect(fabricated.key).to eq :test
expect(fabricated.value).to eq ['ls']
+ expect(fabricated.attributes)
+ .to eq(parent: true, key: :test, description: nil)
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 0c6608d906d..417b4a0ad6f 100644
--- a/spec/lib/gitlab/ci/config/node/undefined_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/undefined_spec.rb
@@ -2,33 +2,62 @@ require 'spec_helper'
describe Gitlab::Ci::Config::Node::Undefined do
let(:undefined) { described_class.new(entry) }
- let(:entry) { Class.new }
+ let(:entry) { spy('Entry') }
- describe '#leaf?' do
- it 'is leaf node' do
- expect(undefined).to be_leaf
+ context 'when entry does not have a default value' do
+ before { allow(entry).to receive(:default).and_return(nil) }
+
+ describe '#leaf?' do
+ it 'is leaf node' do
+ expect(undefined).to be_leaf
+ end
end
- end
- describe '#valid?' do
- it 'is always valid' do
- expect(undefined).to be_valid
+ describe '#valid?' do
+ it 'is always valid' do
+ expect(undefined).to be_valid
+ end
end
- end
- describe '#errors' do
- it 'is does not contain errors' do
- expect(undefined.errors).to be_empty
+ describe '#errors' do
+ it 'is does not contain errors' do
+ expect(undefined.errors).to be_empty
+ end
+ end
+
+ describe '#value' do
+ it 'returns nil' do
+ expect(undefined.value).to eq nil
+ end
end
end
- describe '#value' do
+ context 'when entry has a default value' do
before do
allow(entry).to receive(:default).and_return('some value')
+ allow(entry).to receive(:value).and_return('some value')
end
- it 'returns default value for entry' do
- expect(undefined.value).to eq 'some value'
+ describe '#value' do
+ it 'returns default value for entry' do
+ expect(undefined.value).to eq 'some value'
+ end
+ end
+
+ describe '#errors' do
+ it 'delegates errors to default entry' do
+ expect(entry).to receive(:errors)
+
+ undefined.errors
+ end
+ end
+
+ describe '#valid?' do
+ it 'delegates valid? to default entry' do
+ expect(entry).to receive(:valid?)
+
+ undefined.valid?
+ end
end
end