class RuboCop::Cop::RSpec::Rails::MinitestAssertions


expect(a).not_to eq(b)
expect(a).to(eq(b), “must be equal”)
expect(a).to eq(b)
# good
refute_equal(a, b)
assert_equal a, b, “must be equal”
assert_equal(a, b)
# bad
@example
Check if using Minitest matchers.

def message(prefer)

def message(prefer)
  format(MSG, prefer: prefer)
end

def on_send(node)

def on_send(node)
  minitest_assertion(node) do |expected, actual, failure_message|
    prefer = replacement(node, expected, actual,
                         failure_message.first)
    add_offense(node, message: message(prefer)) do |corrector|
      corrector.replace(node, prefer)
    end
  end
end

def replacement(node, expected, actual, failure_message)

def replacement(node, expected, actual, failure_message)
  runner = node.method?(:assert_equal) ? 'to' : 'not_to'
  if failure_message.nil?
    "expect(#{expected.source}).#{runner} eq(#{actual.source})"
  else
    "expect(#{expected.source}).#{runner}(eq(#{actual.source}), " \
      "#{failure_message.source})"
  end
end