Class: RuboCop::Cop::RSpec::MultipleDescribes

Inherits:
RuboCop::Cop
  • Object
show all
Includes:
RSpec::TopLevelDescribe
Defined in:
lib/rubocop/cop/rspec/multiple_describes.rb

Overview

Checks for multiple top level describes. They should be nested if it is for the same class or module or seperated into different files.

Examples:

# bad
describe MyClass, '.do_someting' do
end
describe MyClass, '.do_someting_else' do
end

#good
describe MyClass
  describe '.do_someting' do
  end
  describe '.do_someting_else' do
  end
end

Constant Summary collapse

MESSAGE =
'Do not use multiple top level describes - try to nest them.'

Instance Method Summary collapse

Methods included from RSpec::TopLevelDescribe

#on_send

Instance Method Details

#on_top_level_describe(node, _args) ⇒ Object



28
29
30
31
32
33
# File 'lib/rubocop/cop/rspec/multiple_describes.rb', line 28

def on_top_level_describe(node, _args)
  return if single_top_level_describe?
  return unless top_level_nodes.first == node

  add_offense(node, :expression, MESSAGE)
end