30 lines
697 B
Ruby
30 lines
697 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Matchers
|
|
PREDICATE_TARGETS = %w[
|
|
element
|
|
file_content
|
|
assignee
|
|
child_pipeline
|
|
content
|
|
design
|
|
file
|
|
issue
|
|
job
|
|
package
|
|
pipeline
|
|
related_issue_item
|
|
snippet_description
|
|
tag
|
|
].each do |predicate|
|
|
RSpec::Matchers.define "have_#{predicate}" do |*args, **kwargs|
|
|
match do |page_object|
|
|
page_object.public_send("has_#{predicate}?", *args, **kwargs) # rubocop:disable GitlabSecurity/PublicSend
|
|
end
|
|
|
|
match_when_negated do |page_object|
|
|
page_object.public_send("has_no_#{predicate}?", *args, **kwargs) # rubocop:disable GitlabSecurity/PublicSend
|
|
end
|
|
end
|
|
end
|
|
end
|