Skip to content

Commit d76204f

Browse files
authored
Merge pull request #61 from github/kh-warn-if-counter-used
Suggest adding native disable instead of counter
2 parents de8da1a + 239f4e3 commit d76204f

File tree

3 files changed

+3
-42
lines changed

3 files changed

+3
-42
lines changed

lib/erblint-github/linters/custom_helpers.rb

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,6 @@ module Linters
88
module CustomHelpers
99
INTERACTIVE_ELEMENTS = %w[button summary input select textarea a].freeze
1010

11-
def rule_disabled?(processed_source)
12-
processed_source.parser.ast.descendants(:erb).each do |node|
13-
indicator_node, _, code_node, = *node
14-
indicator = indicator_node&.loc&.source
15-
comment = code_node&.loc&.source&.strip
16-
rule_name = simple_class_name
17-
18-
if indicator == "#" && comment.start_with?("erblint:disable") && comment.match(rule_name)
19-
if @offenses.any?
20-
clear_offenses
21-
else
22-
add_offense(processed_source.to_source_range(code_node.loc),
23-
"Unused erblint:disable comment for #{rule_name}")
24-
end
25-
end
26-
end
27-
end
28-
2911
def counter_correct?(processed_source)
3012
comment_node = nil
3113
expected_count = 0
@@ -52,10 +34,10 @@ def counter_correct?(processed_source)
5234
first_offense = @offenses[0]
5335

5436
if comment_node.nil?
55-
add_offense(processed_source.to_source_range(first_offense.source_range), "#{rule_name}: If you must, add <%# erblint:counter #{rule_name} #{offenses_count} %> to bypass this check.", "<%# erblint:counter #{rule_name} #{offenses_count} %>")
37+
add_offense(processed_source.to_source_range(first_offense.source_range), "#{rule_name}: If you must, add <%# erblint:disable #{rule_name} %> at the end of the offending line to bypass this check. See https://github.com/shopify/erb-lint#disable-rule-at-offense-level", "<%# erblint:disable #{rule_name} %>")
5638
else
5739
clear_offenses
58-
add_offense(processed_source.to_source_range(comment_node.loc), "Incorrect erblint:counter number for #{rule_name}. Expected: #{expected_count}, actual: #{offenses_count}.", "<%# erblint:counter #{rule_name} #{offenses_count} %>") if expected_count != offenses_count
40+
add_offense(processed_source.to_source_range(comment_node.loc), "Incorrect erblint:counter number for #{rule_name}. Expected: #{expected_count}, actual: #{offenses_count}.", "<%# erblint:counter #{rule_name}Counter #{offenses_count} %>") if expected_count != offenses_count
5941
end
6042
end
6143

test/custom_helpers_test.rb

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,6 @@ def extended_linter
2020
@linter.extend(ERBLint::Linters::CustomHelpers)
2121
end
2222

23-
def test_rule_disabled_clears_offenses_if_rule_is_disabled
24-
@file = <<~HTML
25-
<%# erblint:disable CustomHelpersTest::FakeLinter %>
26-
HTML
27-
@linter.offenses = ["fake offense"]
28-
assert_equal @linter.offenses.length, 1
29-
30-
extended_linter.rule_disabled?(processed_source)
31-
assert_empty @linter.offenses
32-
end
33-
34-
def test_rule_disabled_adds_offense_if_disable_comment_is_present_but_no_offense
35-
@file = <<~HTML
36-
<%# erblint:disable CustomHelpersTest::FakeLinter %>
37-
HTML
38-
assert_empty @linter.offenses
39-
40-
extended_linter.rule_disabled?(processed_source)
41-
assert_equal "Unused erblint:disable comment for CustomHelpersTest::FakeLinter", @linter.offenses.first.message
42-
end
43-
4423
def test_counter_correct_does_not_add_offense_if_counter_matches_offense_count
4524
@file = <<~HTML
4625
<%# erblint:counter CustomHelpersTest::FakeLinter 1 %>

test/linters/accessibility/avoid_both_disabled_and_aria_disabled_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def test_adds_extra_offense_to_add_counter_comment_if_counter_config_enabled
4444
@linter.run(processed_source)
4545

4646
assert_equal @linter.offenses.count, 8
47-
assert_match(/If you must, add <%# erblint:counter GitHub::Accessibility::AvoidBothDisabledAndAriaDisabled 7 %> to bypass this check/, @linter.offenses.last.message)
47+
assert_match(/If you must, add <%# erblint:disable GitHub::Accessibility::AvoidBothDisabledAndAriaDisabled %> at the end of the offending line to bypass this check./, @linter.offenses.last.message)
4848
end
4949

5050
def test_does_not_raise_when_ignore_comment_with_correct_count_if_counter_enabled

0 commit comments

Comments
 (0)