class RuboCop::Cop::RSpec::RepeatedDescription


end
end
# …
it ‘is valid when last name only is present’ do
end
# …
it ‘is valid when first and last name are present’ do
RSpec.describe User do
# good
end
end
# …
it ‘is valid’ do
end
# …
it ‘is valid’ do
RSpec.describe User do
# bad
@example
Check for repeated description strings in example groups.

def on_block(node)

def on_block(node)
  return unless example_group?(node)
  repeated_descriptions(node).each do |repeated_description|
    add_offense(repeated_description)
  end
end

def repeated_descriptions(node)

Select examples in the current scope with repeated description strings
def repeated_descriptions(node)
  grouped_examples =
    RuboCop::RSpec::ExampleGroup.new(node)
      .examples
      .group_by(&:doc_string)
  grouped_examples
    .select { |description, group| description && group.size > 1 }
    .values
    .flatten
    .map(&:definition)
end