From 67d97b9a9b71361098a36e1b5234ecc7cd191cdd Mon Sep 17 00:00:00 2001 From: Kate Higa <16447748+khiga8@users.noreply.github.com> Date: Fri, 31 Mar 2023 21:46:19 -0400 Subject: [PATCH] Remove counter and counter default --- README.md | 4 +- docs/counter-migration-guide.md | 2 +- ...-counter.md => avoid-generic-link-text.md} | 0 ..._counter.rb => avoid_generic_link_text.rb} | 23 ++++------ ...est.rb => avoid_generic_link_text_test.rb} | 46 +++---------------- 5 files changed, 17 insertions(+), 58 deletions(-) rename docs/rules/accessibility/{avoid-generic-link-text-counter.md => avoid-generic-link-text.md} (100%) rename lib/erblint-github/linters/github/accessibility/{avoid_generic_link_text_counter.rb => avoid_generic_link_text.rb} (89%) rename test/linters/accessibility/{avoid_generic_link_text_counter_test.rb => avoid_generic_link_text_test.rb} (71%) diff --git a/README.md b/README.md index e08d6c6..31c8721 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ require "erblint-github/linters" linters: GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter: enabled: true - GitHub::Accessibility::AvoidGenericLinkTextCounter: + GitHub::Accessibility::AvoidGenericLinkText: enabled: true GitHub::Accessibility::DisabledAttributeCounter: enabled: true @@ -56,7 +56,7 @@ linters: ## Rules - [GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter](./docs/rules/accessibility/avoid-both-disabled-and-aria-disabled.md) -- [GitHub::Accessibility::AvoidGenericLinkTextCounter](./docs/rules/accessibility/avoid-generic-link-text-counter.md) +- [GitHub::Accessibility::AvoidGenericLinkText](./docs/rules/accessibility/avoid-generic-link-text.md) - [GitHub::Accessibility::DisabledAttributeCounter](./docs/rules/accessibility/disabled-attribute-counter.md) - [GitHub::Accessibility::LandmarkHasLabelCounter](./docs/rules/accessibility/landmark-has-label-counter.md) - [GitHub::Accessibility::LinkHasHrefCounter](./docs/rules/accessibility/link-has-href-counter.md) diff --git a/docs/counter-migration-guide.md b/docs/counter-migration-guide.md index 8733cea..c2fe8d6 100644 --- a/docs/counter-migration-guide.md +++ b/docs/counter-migration-guide.md @@ -13,7 +13,7 @@ If your configuration looks something like: linters: GitHub::Accessibility::AvoidBothDisabledAndAriaCounter: enabled: true - GitHub::Accessibility::AvoidGenericLinkTextCounter: + GitHub::Accessibility::AvoidGenericLinkText: enabled: true GitHub::Accessibility::DisabledAttributeCounter: enabled: true diff --git a/docs/rules/accessibility/avoid-generic-link-text-counter.md b/docs/rules/accessibility/avoid-generic-link-text.md similarity index 100% rename from docs/rules/accessibility/avoid-generic-link-text-counter.md rename to docs/rules/accessibility/avoid-generic-link-text.md diff --git a/lib/erblint-github/linters/github/accessibility/avoid_generic_link_text_counter.rb b/lib/erblint-github/linters/github/accessibility/avoid_generic_link_text.rb similarity index 89% rename from lib/erblint-github/linters/github/accessibility/avoid_generic_link_text_counter.rb rename to lib/erblint-github/linters/github/accessibility/avoid_generic_link_text.rb index 5f92921..9d24c6b 100644 --- a/lib/erblint-github/linters/github/accessibility/avoid_generic_link_text_counter.rb +++ b/lib/erblint-github/linters/github/accessibility/avoid_generic_link_text.rb @@ -6,7 +6,7 @@ module ERBLint module Linters module GitHub module Accessibility - class AvoidGenericLinkTextCounter < Linter + class AvoidGenericLinkText < Linter include ERBLint::Linters::CustomHelpers include LinterRegistry @@ -22,6 +22,11 @@ class AvoidGenericLinkTextCounter < Linter MESSAGE = "Avoid using generic link text such as #{BANNED_GENERIC_TEXT.join(', ')} which do not make sense in isolation." + class ConfigSchema < LinterConfig + property :counter_enabled, accepts: [true, false], default: false, reader: :counter_enabled? + end + self.config_schema = ConfigSchema + def run(processed_source) processed_source.ast.children.each_with_index do |node, index| next unless node.methods.include?(:type) && node.type == :text @@ -93,20 +98,8 @@ def run(processed_source) banned_text = nil end end - counter_correct?(processed_source) - end - - def autocorrect(processed_source, offense) - return unless offense.context - - lambda do |corrector| - if processed_source.file_content.include?("erblint:counter #{simple_class_name}") - # update the counter if exists - corrector.replace(offense.source_range, offense.context) - else - # add comment with counter if none - corrector.insert_before(processed_source.source_buffer.source_range, "#{offense.context}\n") - end + if @config.counter_enabled? + counter_correct?(processed_source) end end diff --git a/test/linters/accessibility/avoid_generic_link_text_counter_test.rb b/test/linters/accessibility/avoid_generic_link_text_test.rb similarity index 71% rename from test/linters/accessibility/avoid_generic_link_text_counter_test.rb rename to test/linters/accessibility/avoid_generic_link_text_test.rb index 75da6d9..e3fb8f1 100644 --- a/test/linters/accessibility/avoid_generic_link_text_counter_test.rb +++ b/test/linters/accessibility/avoid_generic_link_text_test.rb @@ -2,9 +2,9 @@ require "test_helper" -class AvoidGenericLinkTextCounterTest < LinterTestCase +class AvoidGenericLinkTextTest < LinterTestCase def linter_class - ERBLint::Linters::GitHub::Accessibility::AvoidGenericLinkTextCounter + ERBLint::Linters::GitHub::Accessibility::AvoidGenericLinkText end def test_warns_when_link_text_is_click_here @@ -51,8 +51,7 @@ def test_warns_when_link_text_is_banned_text_with_punctuation_and_space @linter.run(processed_source) refute_empty @linter.offenses - # 3 offenses, 1 related to matching counter comment not present despite violations - assert_equal 4, @linter.offenses.count + assert_equal 3, @linter.offenses.count end def test_does_not_warn_when_banned_text_is_part_of_more_text @@ -143,50 +142,17 @@ def test_handles_files_with_various_links @linter.run(processed_source) refute_empty @linter.offenses - # 3 offenses, 1 related to matching counter comment not present despite violations - assert_equal 4, @linter.offenses.count + assert_equal 3, @linter.offenses.count end def test_does_not_warns_if_element_has_correct_counter_comment + @linter.config.counter_enabled = true @file = <<~ERB - <%# erblint:counter GitHub::Accessibility::AvoidGenericLinkTextCounter 1 %> + <%# erblint:counter GitHub::Accessibility::AvoidGenericLinkText 1 %> Link ERB @linter.run(processed_source) assert_equal 0, @linter.offenses.count end - - def test_autocorrects_when_ignores_are_not_correct - @file = <<~ERB -

- Click here - Click here - Click here -

-

- <%= link_to "learn more", billing_path, "aria-label": "something" %> - <%= link_to "learn more", billing_path, aria: { label: "something" } %> - <%= link_to "learn more", billing_path, aria: { describedby: "element123" } %> - <%= link_to "learn more", billing_path, "aria-describedby": "element123" %> -

- ERB - refute_equal @file, corrected_content - - expected_content = <<~ERB - <%# erblint:counter GitHub::Accessibility::AvoidGenericLinkTextCounter 3 %> -

- Click here - Click here - Click here -

-

- <%= link_to "learn more", billing_path, "aria-label": "something" %> - <%= link_to "learn more", billing_path, aria: { label: "something" } %> - <%= link_to "learn more", billing_path, aria: { describedby: "element123" } %> - <%= link_to "learn more", billing_path, "aria-describedby": "element123" %> -

- ERB - assert_equal expected_content, corrected_content - end end