class RuboCop::Cop::RSpec::LetSetup

end
expect(Widget.count).to eq(1)
it ‘counts widgets’ do
before { create(:widget) }
# good
end
expect(Widget.count).to eq(1)
create(:widget)
it ‘counts widgets’ do
# good
end
expect(Widget.count).to eq(1)
it ‘counts widgets’ do
let!(:my_widget) { create(:widget) }
# bad
@example
Checks unreferenced ‘let!` calls being used for test setup.

def child_let_bang(node, &block)

def child_let_bang(node, &block)
  RuboCop::RSpec::ExampleGroup.new(node).lets.each do |let|
    let_bang(let, &block)
  end
end

def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler

rubocop:disable InternalAffairs/NumblockHandler
def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler
  return unless example_or_shared_group_or_including?(node)
  unused_let_bang(node) do |let|
    add_offense(let)
  end
end

def unused_let_bang(node)

def unused_let_bang(node)
  child_let_bang(node) do |method_send, method_name|
    yield(method_send) unless method_called?(node, method_name.to_sym)
  end
end