class RuboCop::Cop::Minitest::AssertTruthy


assert(actual, ‘message’)
assert(actual)
# good
assert_equal(true, actual, ‘message’)
assert_equal(true, actual)
# bad
@example
—-
assert(‘truthy’) # success
assert_equal(true, ‘truthy’) # failure
—-
[source,ruby]

False positives cannot be prevented when this is a variable or method return value.
This cop is unsafe because true might be expected instead of truthy.
@safety
Enforces the test to use ‘assert(actual)` instead of using `assert_equal(true, actual)`.

def on_send(node)

def on_send(node)
  assert_equal_with_truthy(node) do |actual, rest_receiver_arg|
    message = rest_receiver_arg.first
    arguments = [actual.source, message&.source].compact.join(', ')
    add_offense(node, message: format(MSG, arguments: arguments)) do |corrector|
      corrector.replace(node.loc.selector, 'assert')
      corrector.replace(first_and_second_arguments_range(node), actual.source)
    end
  end
end