class RuboCop::Cop::RSpec::RepeatedExample


end
expect(user).to be_valid
it ‘validates the user’ do
end
expect(user).to be_valid
it ‘is valid’ do
@example
Check for repeated examples within example groups.

def example_signature(example)

def example_signature(example)
  key_parts = [example.metadata, example.implementation]
  if example.definition.method_name == :its
    key_parts << example.definition.arguments
  end
  key_parts
end

def on_block(node)

def on_block(node)
  return unless example_group?(node)
  repeated_examples(node).each do |repeated_example|
    add_offense(repeated_example)
  end
end

def repeated_examples(node)

def repeated_examples(node)
  RuboCop::RSpec::ExampleGroup.new(node)
    .examples
    .group_by { |example| example_signature(example) }
    .values
    .reject(&:one?)
    .flatten
    .map(&:to_node)
end