Class: RuboCop::Cop::Discourse::OnlyTopLevelMultisiteSpecs

Inherits:
RuboCop::Cop
  • Object
show all
Defined in:
lib/rubocop/cop/discourse/only_top_level_multisite_specs.rb

Overview

Use ‘type: :multisite` only on a top-level `describe`. Mixing multisite and standard specs can lead to errors, e.g. when using `fab!` helper.

Examples:

# bad
describe "something" do
  describe "x", type: :multisite do
  end

  it "does X", type: :multisite do
  end
end

# good
describe "something", type: :multisite do
  describe "x" do
  end

  it "does X" do
  end
end

Constant Summary collapse

MSG =
"Use `type: :multisite` only on a top-level `describe`"

Instance Method Summary collapse

Instance Method Details

#on_block(node) ⇒ Object



31
32
33
34
35
36
# File 'lib/rubocop/cop/discourse/only_top_level_multisite_specs.rb', line 31

def on_block(node)
  return if top_level?(node)
  return if !multisite_describe?(node.children.first)

  add_offense(node, message: MSG)
end