30 lines
689 B
Ruby
30 lines
689 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
|
||
|
].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
|