class RuboCop::Cop::Minitest::AssertEmpty


assert_empty(object, ‘the message’)
assert_empty(object)
# good
assert(object.empty?, ‘the message’)
assert(object.empty?)
# bad
@example
instead of using ‘assert(object.empty?)`.
This cop enforces the test to use `assert_empty`

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    assert_with_empty(node) do |_first_receiver_arg, actual, rest_receiver_arg|
      message = rest_receiver_arg.first
      replacement = [actual.source, message&.source].compact.join(', ')
      corrector.replace(node.loc.expression, "assert_empty(#{replacement})")
    end
  end
end

def on_send(node)

def on_send(node)
  assert_with_empty(node) do |first_receiver_arg, actual, rest_receiver_arg|
    message = rest_receiver_arg.first
    arguments = [actual.source, message&.source].compact.join(', ')
    receiver = [first_receiver_arg.source, message&.source].compact.join(', ')
    offense_message = format(MSG, arguments: arguments, receiver: receiver)
    add_offense(node, message: offense_message)
  end
end