summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-29 09:10:23 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-06-29 09:17:42 +0200
commit92312786f13c72188abbbe4f0b6cbdd36de2331d (patch)
tree64003694f6458031eda79ba977ad7aa3b812ae49
parent7c511c2f55f3e181983253d8b3ae74cd84e6844c (diff)
downloadgitlab-ce-92312786f13c72188abbbe4f0b6cbdd36de2331d.tar.gz
Add CI config entry location info to error message
This CI config entry location in configuration Hash.
-rw-r--r--lib/gitlab/ci/config/node/entry.rb7
-rw-r--r--lib/gitlab/ci/config/node/validator.rb9
-rw-r--r--spec/lib/gitlab/ci/config/node/global_spec.rb6
-rw-r--r--spec/lib/gitlab/ci/config/node/validator_spec.rb7
4 files changed, 15 insertions, 14 deletions
diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb
index f22dac44836..17d04fbdfec 100644
--- a/lib/gitlab/ci/config/node/entry.rb
+++ b/lib/gitlab/ci/config/node/entry.rb
@@ -8,9 +8,8 @@ module Gitlab
class Entry
class InvalidError < StandardError; end
- attr_writer :key
attr_reader :config
- attr_accessor :parent, :description
+ attr_accessor :key, :parent, :description
def initialize(config)
@config = config
@@ -35,10 +34,6 @@ module Gitlab
self.class.nodes.none?
end
- def key
- @key || self.class.name.demodulize.underscore
- end
-
def valid?
errors.none?
end
diff --git a/lib/gitlab/ci/config/node/validator.rb b/lib/gitlab/ci/config/node/validator.rb
index 18e795d2c42..d898d521548 100644
--- a/lib/gitlab/ci/config/node/validator.rb
+++ b/lib/gitlab/ci/config/node/validator.rb
@@ -8,17 +8,24 @@ module Gitlab
def initialize(node)
super(node)
+ @node = node
end
def messages
errors.full_messages.map do |error|
- "#{key} #{error}".humanize
+ "#{location} #{error}".humanize
end
end
def self.name
'Validator'
end
+
+ private
+
+ def location
+ key || @node.class.name.demodulize.underscore
+ end
end
end
end
diff --git a/spec/lib/gitlab/ci/config/node/global_spec.rb b/spec/lib/gitlab/ci/config/node/global_spec.rb
index 6aef6b913cf..cf7ab13c8b1 100644
--- a/spec/lib/gitlab/ci/config/node/global_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/global_spec.rb
@@ -13,12 +13,6 @@ describe Gitlab::Ci::Config::Node::Global do
end
end
- describe '#key' do
- it 'returns underscored class name' do
- expect(global.key).to eq 'global'
- end
- end
-
context 'when hash is valid' do
context 'when all entries defined' do
let(:hash) do
diff --git a/spec/lib/gitlab/ci/config/node/validator_spec.rb b/spec/lib/gitlab/ci/config/node/validator_spec.rb
index c293faa33ae..87a1bbf55c0 100644
--- a/spec/lib/gitlab/ci/config/node/validator_spec.rb
+++ b/spec/lib/gitlab/ci/config/node/validator_spec.rb
@@ -5,6 +5,10 @@ describe Gitlab::Ci::Config::Node::Validator do
let(:validator_instance) { validator.new(node) }
let(:node) { spy('node') }
+ before do
+ allow(node).to receive(:key).and_return('node')
+ end
+
describe 'delegated validator' do
before do
validator.class_eval do
@@ -42,7 +46,8 @@ describe Gitlab::Ci::Config::Node::Validator do
it 'returns errors' do
validator_instance.validate
- expect(validator_instance.messages).not_to be_empty
+ expect(validator_instance.messages)
+ .to include "Node test attribute can't be blank"
end
end
end