Improve QA sanity selectors test output message

This commit is contained in:
Grzegorz Bizon 2018-01-09 12:34:47 +01:00
parent 170c07ef67
commit e0edf6c7af
5 changed files with 40 additions and 3 deletions

View file

@ -50,7 +50,7 @@ module QA
def self.errors def self.errors
if views.empty? if views.empty?
return ["#{name} class does not have views / elements defined!"] return ["Page class does not have views / elements defined!"]
end end
views.map(&:errors).flatten views.map(&:errors).flatten

View file

@ -19,6 +19,10 @@ module QA
def matches?(line) def matches?(line)
!!(line =~ expression) !!(line =~ expression)
end end
def to_s
@name
end
end end
end end
end end

View file

@ -2,7 +2,12 @@ module QA
module Page module Page
class Validator class Validator
ValidationError = Class.new(StandardError) ValidationError = Class.new(StandardError)
Error = Struct.new(:page, :message)
Error = Struct.new(:page, :message) do
def to_s
"Error: #{page} - #{message}"
end
end
def initialize(constant) def initialize(constant)
@module = constant @module = constant

View file

@ -13,6 +13,34 @@ module QA
end end
validators.map(&:errors).flatten.tap do |errors| validators.map(&:errors).flatten.tap do |errors|
break if errors.none?
STDERR.puts <<~EOS
GitLab QA sanity selectors validation test detected problems
your merge request!
The purpose of this tes is to make sure that GitLab QA tests,
that are entirely black-box and click-driven scenario, do match
pages structure / layout in the GitLab CE / EE repositories.
It looks like you have changed views / pages / selectors, and
these are now out of sync with what we have defined in `qa/`
directory.
Please update code in `qa/` directory to match currect changes
in this merge request.
For more help see documentation in `qa/page/README.md` file or
ask for help on #qa channel on Slack (GitLab Team only).
If you are not a team member, and you still need help to
contribute, please open an issue in GitLab QA issue tracker.
Please see errors described below.
EOS
STDERR.puts errors
end end
validators.each(&:validate!) validators.each(&:validate!)

View file

@ -56,7 +56,7 @@ describe QA::Page::Base do
it 'appends an error about missing views / elements block' do it 'appends an error about missing views / elements block' do
expect(described_class.errors) expect(described_class.errors)
.to include 'QA::Page::Base class does not have views / elements defined!' .to include 'Page class does not have views / elements defined!'
end end
end end
end end