Skip to content

Commit 17dd622

Browse files
committed
introduce counter test
1 parent ea9d80d commit 17dd622

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

lib/erblint-github/linters/custom_helpers.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def rule_disabled?(processed_source)
2727
def counter_correct?(processed_source)
2828
comment_node = nil
2929
expected_count = 0
30-
rule_name = self.class.name.match(/:?:?(\w+)\Z/)[1]
30+
rule_name = simple_class_name
3131
offenses_count = @offenses.length
3232

3333
processed_source.parser.ast.descendants(:erb).each do |node|

test/custom_helpers_test.rb

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class FakeLinter < ERBLint::Linter
1111

1212
MESSAGE = "Please fix your code."
1313
end
14-
14+
1515
def linter_class
1616
CustomHelpersTest::FakeLinter
1717
end
@@ -38,8 +38,36 @@ def test_rule_disabled_adds_offense_if_disable_comment_is_present_but_no_offense
3838
assert_empty @linter.offenses
3939

4040
extended_linter.rule_disabled?(processed_source)
41+
assert_equal "Unused erblint:disable comment for CustomHelpersTest::FakeLinter", @linter.offenses.first.message
42+
end
4143

42-
assert_equal @linter.offenses.length, 1
44+
def test_counter_correct_does_not_add_offense_if_counter_matches_offense_count
45+
@file = <<~HTML
46+
<%# erblint:count CustomHelpersTest::FakeLinter 1 %>
47+
HTML
48+
@linter.offenses = ["fake offense"]
49+
50+
extended_linter.counter_correct?(processed_source)
51+
assert_empty @linter.offenses
52+
end
53+
54+
def test_counter_correct_add_offense_if_counter_comment_is_unused
55+
@file = <<~HTML
56+
<%# erblint:count CustomHelpersTest::FakeLinter 1 %>
57+
HTML
58+
59+
extended_linter.counter_correct?(processed_source)
60+
assert_equal "Unused erblint:count comment for CustomHelpersTest::FakeLinter", @linter.offenses.first.message
61+
end
62+
63+
def test_counter_correct_add_offense_if_counter_comment_count_is_incorrect
64+
@file = <<~HTML
65+
<%# erblint:count CustomHelpersTest::FakeLinter 2 %>
66+
HTML
67+
@linter.offenses = ["fake offense"]
68+
69+
extended_linter.counter_correct?(processed_source)
70+
assert_equal "Incorrect erblint:counter number for CustomHelpersTest::FakeLinter. Expected: 2, actual: 1.", @linter.offenses.first.message
4371
end
4472

4573
def test_generate_offense_with_message_defined_in_linter_class

0 commit comments

Comments
 (0)