Commit 92312786 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Add CI config entry location info to error message

This CI config entry location in configuration Hash.
parent 7c511c2f
...@@ -8,9 +8,8 @@ module Gitlab ...@@ -8,9 +8,8 @@ module Gitlab
class Entry class Entry
class InvalidError < StandardError; end class InvalidError < StandardError; end
attr_writer :key
attr_reader :config attr_reader :config
attr_accessor :parent, :description attr_accessor :key, :parent, :description
def initialize(config) def initialize(config)
@config = config @config = config
...@@ -35,10 +34,6 @@ module Gitlab ...@@ -35,10 +34,6 @@ module Gitlab
self.class.nodes.none? self.class.nodes.none?
end end
def key
@key || self.class.name.demodulize.underscore
end
def valid? def valid?
errors.none? errors.none?
end end
......
...@@ -8,17 +8,24 @@ module Gitlab ...@@ -8,17 +8,24 @@ module Gitlab
def initialize(node) def initialize(node)
super(node) super(node)
@node = node
end end
def messages def messages
errors.full_messages.map do |error| errors.full_messages.map do |error|
"#{key} #{error}".humanize "#{location} #{error}".humanize
end end
end end
def self.name def self.name
'Validator' 'Validator'
end end
private
def location
key || @node.class.name.demodulize.underscore
end
end end
end end
end end
......
...@@ -13,12 +13,6 @@ describe Gitlab::Ci::Config::Node::Global do ...@@ -13,12 +13,6 @@ describe Gitlab::Ci::Config::Node::Global do
end end
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 hash is valid' do
context 'when all entries defined' do context 'when all entries defined' do
let(:hash) do let(:hash) do
......
...@@ -5,6 +5,10 @@ describe Gitlab::Ci::Config::Node::Validator do ...@@ -5,6 +5,10 @@ describe Gitlab::Ci::Config::Node::Validator do
let(:validator_instance) { validator.new(node) } let(:validator_instance) { validator.new(node) }
let(:node) { spy('node') } let(:node) { spy('node') }
before do
allow(node).to receive(:key).and_return('node')
end
describe 'delegated validator' do describe 'delegated validator' do
before do before do
validator.class_eval do validator.class_eval do
...@@ -42,7 +46,8 @@ describe Gitlab::Ci::Config::Node::Validator do ...@@ -42,7 +46,8 @@ describe Gitlab::Ci::Config::Node::Validator do
it 'returns errors' do it 'returns errors' do
validator_instance.validate 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 end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment