class RuboCop::Cop::RSpec::ExpectInHook

end
expect(something).to eq ‘foo’
it do
# good
end
expect_any_instance_of(Something).to receive(:foo)
after do
# bad
end
expect(something).to eq ‘foo’
before do
# bad
@example
Do not use ‘expect` in hooks such as `before`.

def message(expect, hook)

def message(expect, hook)
  format(MSG, expect: expect.method_name, hook: hook)
end

def on_block(node)

def on_block(node)
  hook(node) do |hook_name, body|
    expect(body) do |expect|
      method = send_node(expect)
      add_offense(method, location: :selector,
                          message: message(method, hook_name))
    end
  end
end

def send_node(node)

def send_node(node)
  return node if node.send_type?
  node.children.first
end