class RuboCop::Cop::Minitest::AssertEqual


assert_equal(“rubocop-minitest”, actual)
# good
assert(“rubocop-minitest” == actual)
# bad
@example
over ‘assert(expected == actual)`.
This cop enforces the use of `assert_equal(expected, actual)`

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    assert_equal(node) do |_receiver, expected, actual, rest_receiver_arg|
      message = rest_receiver_arg.first
      replacement = node_arguments(expected, actual, message)
      corrector.replace(node.loc.expression, "assert_equal(#{replacement})")
    end
  end
end

def node_arguments(expected, actual, message)

def node_arguments(expected, actual, message)
  [expected.source, actual.source, message&.source].compact.join(', ')
end

def on_send(node)

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