Improve QA sanity selectors test output message
This commit is contained in:
parent
170c07ef67
commit
e0edf6c7af
5 changed files with 40 additions and 3 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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!)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue