class RuboCop::Cop::RSpec::RepeatedExample
Check for repeated examples within example groups.
@example
it 'is valid' do expect(user).to be_valid end it 'validates the user' do expect(user).to be_valid end
Constants
- MSG
Public Instance Methods
on_block(node)
click to toggle source
# File lib/rubocop/cop/rspec/repeated_example.rb, line 21 def on_block(node) return unless example_group?(node) repeated_examples(node).each do |repeated_example| add_offense(repeated_example) end end
Private Instance Methods
example_signature(example)
click to toggle source
# File lib/rubocop/cop/rspec/repeated_example.rb, line 41 def example_signature(example) key_parts = [example.metadata, example.implementation] if example.definition.method?(:its) key_parts << example.definition.arguments end key_parts end
repeated_examples(node)
click to toggle source
# File lib/rubocop/cop/rspec/repeated_example.rb, line 31 def repeated_examples(node) RuboCop::RSpec::ExampleGroup.new(node) .examples .group_by { |example| example_signature(example) } .values .reject(&:one?) .flatten .map(&:to_node) end