class RuboCop::Cop::InternalAffairs::ExampleDescription

end
expect_no_offenses(‘…’)
it ‘does not register an offense’ do
end
expect_offense(‘…’)
it ‘registers an offense’ do
# good
end
expect_no_offenses(‘…’)
it ‘registers an offense’ do
end
expect_offense(‘…’)
it ‘does not register an offense’ do
# bad
@example
descriptions.
or ‘expects_no_offenses` do not have conflicting
Checks that RSpec examples that use `expects_offense`

def check_description(description, regexps, message)

def check_description(description, regexps, message)
  return unless regexps.any? { |regexp| regexp.match?(string_contents(description)) }
  add_offense(description, message: message)
end

def on_send(node)

def on_send(node)
  parent = node.each_ancestor(:block).first
  return unless parent && (description = offense_example?(parent))
  method_name = node.method_name
  message = format(MSG, method_name: method_name)
  regexp_group = self.class.const_get("#{method_name}_incorrect_descriptions".upcase)
  check_description(description, regexp_group, message)
end

def string_contents(node)

def string_contents(node)
  node.str_type? ? node.value : node.source
end