diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-06-29 09:10:23 +0200 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-06-29 09:17:42 +0200 |
commit | 92312786f13c72188abbbe4f0b6cbdd36de2331d (patch) | |
tree | 64003694f6458031eda79ba977ad7aa3b812ae49 | |
parent | 7c511c2f55f3e181983253d8b3ae74cd84e6844c (diff) | |
download | gitlab-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.rb | 7 | ||||
-rw-r--r-- | lib/gitlab/ci/config/node/validator.rb | 9 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/node/global_spec.rb | 6 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/config/node/validator_spec.rb | 7 |
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 |