aboutsummaryrefslogtreecommitdiffstats
path: root/ci/custom_cops/test/custom_cops/assert_not_test.rb
blob: abb151aeb4e5d147176c062855204b34afb53eae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# frozen_string_literal: true

require "support/cop_helper"
require_relative "../../lib/custom_cops/assert_not"

class AssertNotTest < ActiveSupport::TestCase
  include CopHelper

  setup do
    @cop = CustomCops::AssertNot.new
  end

  test "rejects 'assert !'" do
    inspect_source @cop, "assert !x"
    assert_offense @cop, "^^^^^^^^^ Prefer `assert_not` over `assert !`"
  end

  test "rejects 'assert !' with a complex value" do
    inspect_source @cop, "assert !a.b(c)"
    assert_offense @cop, "^^^^^^^^^^^^^^ Prefer `assert_not` over `assert !`"
  end

  test "autocorrects `assert !`" do
    corrected = autocorrect_source(@cop, "assert !false")
    assert_equal "assert_not false", corrected
  end

  test "autocorrects `assert !` with extra spaces" do
    corrected = autocorrect_source(@cop, "assert   !  false")
    assert_equal "assert_not false", corrected
  end

  test "autocorrects `assert !` with parentheses" do
    corrected = autocorrect_source(@cop, "assert(!false)")
    assert_equal "assert_not(false)", corrected
  end

  test "accepts `assert_not`" do
    inspect_source @cop, "assert_not x"
    assert_empty @cop.offenses
  end
end