From 8c484ccc8a1a96598e56366f9e0595844f84f88a Mon Sep 17 00:00:00 2001 From: Kate Higa Date: Fri, 2 Sep 2022 15:14:06 -0700 Subject: [PATCH 1/2] Migrate remaining rules to counters --- README.md | 21 ++++++++++++------- ...oth-disabled-and-aria-disabled-counter.md} | 0 ...s-title.md => iframe-has-title-counter.md} | 0 ...ge-has-alt.md => image-has-alt-counter.md} | 0 ...ex.md => no-positive-tab-index-counter.md} | 0 ...t.md => no-redundant-image-alt-counter.md} | 0 ...oth_disabled_and_aria_disabled_counter.rb} | 18 ++++++++++++++-- ...s_title.rb => iframe_has_title_counter.rb} | 18 ++++++++++++++-- ...ge_has_alt.rb => image_has_alt_counter.rb} | 18 ++++++++++++++-- ...ex.rb => no_positive_tab_index_counter.rb} | 18 ++++++++++++++-- ...t.rb => no_redundant_image_alt_counter.rb} | 18 ++++++++++++++-- ...isabled_and_aria_disabled_counter_test.rb} | 4 ++-- ...st.rb => iframe_has_title_counter_test.rb} | 4 ++-- ..._test.rb => image_has_alt_counter_test.rb} | 4 ++-- ... => no_positive_tab_index_counter_test.rb} | 4 ++-- ...=> no_redundant_image_alt_counter_test.rb} | 10 ++++----- 16 files changed, 106 insertions(+), 31 deletions(-) rename docs/rules/accessibility/{avoid-both-disabled-and-aria-disabled.md => avoid-both-disabled-and-aria-disabled-counter.md} (100%) rename docs/rules/accessibility/{iframe-has-title.md => iframe-has-title-counter.md} (100%) rename docs/rules/accessibility/{image-has-alt.md => image-has-alt-counter.md} (100%) rename docs/rules/accessibility/{no-positive-tab-index.md => no-positive-tab-index-counter.md} (100%) rename docs/rules/accessibility/{no-redundant-image-alt.md => no-redundant-image-alt-counter.md} (100%) rename lib/erblint-github/linters/github/accessibility/{avoid_both_disabled_and_aria_disabled.rb => avoid_both_disabled_and_aria_disabled_counter.rb} (58%) rename lib/erblint-github/linters/github/accessibility/{iframe_has_title.rb => iframe_has_title_counter.rb} (60%) rename lib/erblint-github/linters/github/accessibility/{image_has_alt.rb => image_has_alt_counter.rb} (52%) rename lib/erblint-github/linters/github/accessibility/{no_positive_tab_index.rb => no_positive_tab_index_counter.rb} (51%) rename lib/erblint-github/linters/github/accessibility/{no_redundant_image_alt.rb => no_redundant_image_alt_counter.rb} (56%) rename test/linters/accessibility/{avoid_both_disabled_and_aria_disabled_test.rb => avoid_both_disabled_and_aria_disabled_counter_test.rb} (94%) rename test/linters/accessibility/{iframe_has_title_test.rb => iframe_has_title_counter_test.rb} (84%) rename test/linters/accessibility/{image_has_alt_test.rb => image_has_alt_counter_test.rb} (84%) rename test/linters/accessibility/{no_positive_tab_index_test.rb => no_positive_tab_index_counter_test.rb} (82%) rename test/linters/accessibility/{no_redundant_image_alt_test.rb => no_redundant_image_alt_counter_test.rb} (83%) diff --git a/README.md b/README.md index b9f7d85..accbb53 100644 --- a/README.md +++ b/README.md @@ -23,15 +23,15 @@ require "erblint-github/linters" ```yaml --- linters: - GitHub::Accessibility::AvoidBothDisabledAndAriaDisabled: + GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter: enabled: true GitHub::Accessibility::AvoidGenericLinkTextCounter: enabled: true GitHub::Accessibility::DisabledAttributeCounter: enabled: true - GitHub::Accessibility::IframeHasTitle: + GitHub::Accessibility::IframeHasTitleCounter: enabled: true - GitHub::Accessibility::ImageHasAlt: + GitHub::Accessibility::ImageHasAltCounter: enabled: true GitHub::Accessibility::LandmarkHasLabelCounter: enabled: true @@ -41,9 +41,9 @@ linters: enabled: true GitHub::Accessibility::NoAriaLabelMisuseCounter: enabled: true - GitHub::Accessibility::NoPositiveTabIndex: + GitHub::Accessibility::NoPositiveTabIndexCounter: enabled: true - GitHub::Accessibility::NoRedundantImageAlt: + GitHub::Accessibility::NoRedundantImageAltCounter: enabled: true GitHub::Accessibility::NoTitleAttributeCounter: enabled: true @@ -53,17 +53,22 @@ linters: ## Rules -- [GitHub::Accessibility::AvoidBothDisabledAndAriaDisabled](./docs/rules/accessibility/avoid-both-disabled-and-aria-disabled.md) +- [GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter](./docs/rules/accessibility/avoid-both-disabled-and-aria-disabled-counter.md) - [GitHub::Accessibility::AvoidGenericLinkTextCounter](./docs/rules/accessibility/avoid-generic-link-text-counter.md) +<<<<<<< HEAD - [GitHub::Accessibility::DisabledAttributeCounter](./docs/rules/accessibility/disabled-attribute-counter.md) - [GitHub::Accessibility::IframeHasTitle](./docs/rules/accessibility/iframe-has-title.md) - [GitHub::Accessibility::LandmarkHasLabelCounter](./docs/rules/accessibility/landmark-has-label-counter.md) - [GitHub::Accessibility::ImageHasAlt](./docs/rules/accessibility/image-has-alt.md) - [GitHub::Accessibility::LinkHasHrefCounter](./docs/rules/accessibility/link-has-href-counter.md) - [GitHub::Accessibility::NestedInteractiveElementsCounter](./docs/rules/accessibility/nested-interactive-elements-counter.md) +======= +- [GitHub::Accessibility::IframeHasTitleCounter](./docs/rules/accessibility/iframe-has-title-counter.md) +- [GitHub::Accessibility::ImageHasAltCounter](./docs/rules/accessibility/image-has-alt-counter.md) +>>>>>>> 3ac20b8 (Migrate remaining rules to counters) - [GitHub::Accessibility::NoAriaLabelMisuseCounter](./docs/rules/accessibility/no-aria-label-misuse-counter.md) -- [GitHub::Accessibility::NoPositiveTabIndex](./docs/rules/accessibility/no-positive-tab-index.md) -- [GitHub::Accessibility::NoRedundantImageAlt](./docs/rules/accessibility/no-redundant-image-alt.md) +- [GitHub::Accessibility::NoPositiveTabIndexCounter](./docs/rules/accessibility/no-positive-tab-index-counter.md) +- [GitHub::Accessibility::NoRedundantImageAltCounter](./docs/rules/accessibility/no-redundant-image-alt-counter.md) - [GitHub::Accessibility::NoTitleAttributeCounter](./docs/rules/accessibility/no-title-attribute-counter.md) - [GitHub::Accessibility::SvgHasAccessibleTextCounter](./docs/rules/accessibility/svg-has-accessible-text-counter.md) diff --git a/docs/rules/accessibility/avoid-both-disabled-and-aria-disabled.md b/docs/rules/accessibility/avoid-both-disabled-and-aria-disabled-counter.md similarity index 100% rename from docs/rules/accessibility/avoid-both-disabled-and-aria-disabled.md rename to docs/rules/accessibility/avoid-both-disabled-and-aria-disabled-counter.md diff --git a/docs/rules/accessibility/iframe-has-title.md b/docs/rules/accessibility/iframe-has-title-counter.md similarity index 100% rename from docs/rules/accessibility/iframe-has-title.md rename to docs/rules/accessibility/iframe-has-title-counter.md diff --git a/docs/rules/accessibility/image-has-alt.md b/docs/rules/accessibility/image-has-alt-counter.md similarity index 100% rename from docs/rules/accessibility/image-has-alt.md rename to docs/rules/accessibility/image-has-alt-counter.md diff --git a/docs/rules/accessibility/no-positive-tab-index.md b/docs/rules/accessibility/no-positive-tab-index-counter.md similarity index 100% rename from docs/rules/accessibility/no-positive-tab-index.md rename to docs/rules/accessibility/no-positive-tab-index-counter.md diff --git a/docs/rules/accessibility/no-redundant-image-alt.md b/docs/rules/accessibility/no-redundant-image-alt-counter.md similarity index 100% rename from docs/rules/accessibility/no-redundant-image-alt.md rename to docs/rules/accessibility/no-redundant-image-alt-counter.md diff --git a/lib/erblint-github/linters/github/accessibility/avoid_both_disabled_and_aria_disabled.rb b/lib/erblint-github/linters/github/accessibility/avoid_both_disabled_and_aria_disabled_counter.rb similarity index 58% rename from lib/erblint-github/linters/github/accessibility/avoid_both_disabled_and_aria_disabled.rb rename to lib/erblint-github/linters/github/accessibility/avoid_both_disabled_and_aria_disabled_counter.rb index b0164b2..4c33929 100644 --- a/lib/erblint-github/linters/github/accessibility/avoid_both_disabled_and_aria_disabled.rb +++ b/lib/erblint-github/linters/github/accessibility/avoid_both_disabled_and_aria_disabled_counter.rb @@ -6,7 +6,7 @@ module ERBLint module Linters module GitHub module Accessibility - class AvoidBothDisabledAndAriaDisabled < Linter + class AvoidBothDisabledAndAriaDisabledCounter < Linter include ERBLint::Linters::CustomHelpers include LinterRegistry @@ -22,7 +22,21 @@ def run(processed_source) generate_offense(self.class, processed_source, tag) end - rule_disabled?(processed_source) + 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 + end end end end diff --git a/lib/erblint-github/linters/github/accessibility/iframe_has_title.rb b/lib/erblint-github/linters/github/accessibility/iframe_has_title_counter.rb similarity index 60% rename from lib/erblint-github/linters/github/accessibility/iframe_has_title.rb rename to lib/erblint-github/linters/github/accessibility/iframe_has_title_counter.rb index 3ea6ce8..8f35507 100644 --- a/lib/erblint-github/linters/github/accessibility/iframe_has_title.rb +++ b/lib/erblint-github/linters/github/accessibility/iframe_has_title_counter.rb @@ -6,7 +6,7 @@ module ERBLint module Linters module GitHub module Accessibility - class IframeHasTitle < Linter + class IframeHasTitleCounter < Linter include ERBLint::Linters::CustomHelpers include LinterRegistry @@ -23,7 +23,21 @@ def run(processed_source) generate_offense(self.class, processed_source, tag) if title.empty? && !aria_hidden?(tag) end - rule_disabled?(processed_source) + 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 + end end private diff --git a/lib/erblint-github/linters/github/accessibility/image_has_alt.rb b/lib/erblint-github/linters/github/accessibility/image_has_alt_counter.rb similarity index 52% rename from lib/erblint-github/linters/github/accessibility/image_has_alt.rb rename to lib/erblint-github/linters/github/accessibility/image_has_alt_counter.rb index f72d66f..0404cf4 100644 --- a/lib/erblint-github/linters/github/accessibility/image_has_alt.rb +++ b/lib/erblint-github/linters/github/accessibility/image_has_alt_counter.rb @@ -6,7 +6,7 @@ module ERBLint module Linters module GitHub module Accessibility - class ImageHasAlt < Linter + class ImageHasAltCounter < Linter include ERBLint::Linters::CustomHelpers include LinterRegistry @@ -22,7 +22,21 @@ def run(processed_source) generate_offense(self.class, processed_source, tag) if alt.empty? end - rule_disabled?(processed_source) + 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 + end end end end diff --git a/lib/erblint-github/linters/github/accessibility/no_positive_tab_index.rb b/lib/erblint-github/linters/github/accessibility/no_positive_tab_index_counter.rb similarity index 51% rename from lib/erblint-github/linters/github/accessibility/no_positive_tab_index.rb rename to lib/erblint-github/linters/github/accessibility/no_positive_tab_index_counter.rb index c2c27e8..55f29a6 100644 --- a/lib/erblint-github/linters/github/accessibility/no_positive_tab_index.rb +++ b/lib/erblint-github/linters/github/accessibility/no_positive_tab_index_counter.rb @@ -6,7 +6,7 @@ module ERBLint module Linters module GitHub module Accessibility - class NoPositiveTabIndex < Linter + class NoPositiveTabIndexCounter < Linter include ERBLint::Linters::CustomHelpers include LinterRegistry @@ -20,7 +20,21 @@ def run(processed_source) generate_offense(self.class, processed_source, tag) end - rule_disabled?(processed_source) + 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 + end end end end diff --git a/lib/erblint-github/linters/github/accessibility/no_redundant_image_alt.rb b/lib/erblint-github/linters/github/accessibility/no_redundant_image_alt_counter.rb similarity index 56% rename from lib/erblint-github/linters/github/accessibility/no_redundant_image_alt.rb rename to lib/erblint-github/linters/github/accessibility/no_redundant_image_alt_counter.rb index 479f659..8329cc5 100644 --- a/lib/erblint-github/linters/github/accessibility/no_redundant_image_alt.rb +++ b/lib/erblint-github/linters/github/accessibility/no_redundant_image_alt_counter.rb @@ -6,7 +6,7 @@ module ERBLint module Linters module GitHub module Accessibility - class NoRedundantImageAlt < Linter + class NoRedundantImageAltCounter < Linter include ERBLint::Linters::CustomHelpers include LinterRegistry @@ -24,7 +24,21 @@ def run(processed_source) generate_offense(self.class, processed_source, tag) if (alt.downcase.split & REDUNDANT_ALT_WORDS).any? end - rule_disabled?(processed_source) + 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 + end end end end diff --git a/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_test.rb b/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_counter_test.rb similarity index 94% rename from test/linters/accessibility/avoid_both_disabled_and_aria_disabled_test.rb rename to test/linters/accessibility/avoid_both_disabled_and_aria_disabled_counter_test.rb index 656d080..2bcae8e 100644 --- a/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_test.rb +++ b/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_counter_test.rb @@ -4,7 +4,7 @@ class AvoidBothDisabledAndAriaDisabled < LinterTestCase def linter_class - ERBLint::Linters::GitHub::Accessibility::AvoidBothDisabledAndAriaDisabled + ERBLint::Linters::GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter end ELEMENTS_WITH_NATIVE_DISABLED_ATTRIBUTE_SUPPORT = %w[button fieldset input optgroup option select textarea].freeze @@ -15,7 +15,7 @@ def test_warns_if_both_disabled_and_aria_disabled_set_on_html_elements_with_disa end.join @linter.run(processed_source) - assert_equal @linter.offenses.count, 7 + assert_equal @linter.offenses.count, 8 end def test_does_not_warn_if_only_disabled_attribute_is_set diff --git a/test/linters/accessibility/iframe_has_title_test.rb b/test/linters/accessibility/iframe_has_title_counter_test.rb similarity index 84% rename from test/linters/accessibility/iframe_has_title_test.rb rename to test/linters/accessibility/iframe_has_title_counter_test.rb index 980f2d6..220b6cd 100644 --- a/test/linters/accessibility/iframe_has_title_test.rb +++ b/test/linters/accessibility/iframe_has_title_counter_test.rb @@ -2,9 +2,9 @@ require "test_helper" -class IframeHasTitle < LinterTestCase +class IframeHasTitleCounterTest < LinterTestCase def linter_class - ERBLint::Linters::GitHub::Accessibility::IframeHasTitle + ERBLint::Linters::GitHub::Accessibility::IframeHasTitleCounter end def test_warns_if_iframe_has_no_title diff --git a/test/linters/accessibility/image_has_alt_test.rb b/test/linters/accessibility/image_has_alt_counter_test.rb similarity index 84% rename from test/linters/accessibility/image_has_alt_test.rb rename to test/linters/accessibility/image_has_alt_counter_test.rb index 4807c14..eeabe80 100644 --- a/test/linters/accessibility/image_has_alt_test.rb +++ b/test/linters/accessibility/image_has_alt_counter_test.rb @@ -2,9 +2,9 @@ require "test_helper" -class ImageHasAltTest < LinterTestCase +class ImageHasAltCounterTest < LinterTestCase def linter_class - ERBLint::Linters::GitHub::Accessibility::ImageHasAlt + ERBLint::Linters::GitHub::Accessibility::ImageHasAltCounter end def test_warns_if_image_has_no_alt_attribute diff --git a/test/linters/accessibility/no_positive_tab_index_test.rb b/test/linters/accessibility/no_positive_tab_index_counter_test.rb similarity index 82% rename from test/linters/accessibility/no_positive_tab_index_test.rb rename to test/linters/accessibility/no_positive_tab_index_counter_test.rb index 3a9f083..177e645 100644 --- a/test/linters/accessibility/no_positive_tab_index_test.rb +++ b/test/linters/accessibility/no_positive_tab_index_counter_test.rb @@ -2,9 +2,9 @@ require "test_helper" -class NoPositiveTabIndexTest < LinterTestCase +class NoPositiveTabIndexCounterTest < LinterTestCase def linter_class - ERBLint::Linters::GitHub::Accessibility::NoPositiveTabIndex + ERBLint::Linters::GitHub::Accessibility::NoPositiveTabIndexCounter end def test_warns_if_positive_tabindex_is_used diff --git a/test/linters/accessibility/no_redundant_image_alt_test.rb b/test/linters/accessibility/no_redundant_image_alt_counter_test.rb similarity index 83% rename from test/linters/accessibility/no_redundant_image_alt_test.rb rename to test/linters/accessibility/no_redundant_image_alt_counter_test.rb index 9b52f05..04b1bf2 100644 --- a/test/linters/accessibility/no_redundant_image_alt_test.rb +++ b/test/linters/accessibility/no_redundant_image_alt_counter_test.rb @@ -2,9 +2,9 @@ require "test_helper" -class NoRedundantImageAltTest < LinterTestCase +class NoRedundantImageAltCounterTest < LinterTestCase def linter_class - ERBLint::Linters::GitHub::Accessibility::NoRedundantImageAlt + ERBLint::Linters::GitHub::Accessibility::NoRedundantImageAltCounter end def test_warns_if_alt_contains_image @@ -29,10 +29,10 @@ def test_does_not_warn_if_alt_contains_no_redundant_text end def test_does_not_warn_if_linter_is_disabled_in_file - @file = <<~HTML - <%# erblint:disable GitHub::Accessibility::NoRedundantImageAlt %> + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::NoRedundantImageAltCounter 1 %> image of an octopus - HTML + ERB @linter.run(processed_source) assert_empty @linter.offenses From 1310fa40fb656cc9206bf3ce10764012825f0638 Mon Sep 17 00:00:00 2001 From: Kate Higa Date: Fri, 2 Sep 2022 15:22:36 -0700 Subject: [PATCH 2/2] Add counter tests --- README.md | 5 --- ...disabled_and_aria_disabled_counter_test.rb | 32 +++++++++++++++++++ .../iframe_has_title_counter_test.rb | 32 +++++++++++++++++++ .../image_has_alt_counter_test.rb | 32 +++++++++++++++++++ .../no_positive_tab_index_counter_test.rb | 32 +++++++++++++++++++ .../no_redundant_image_alt_counter_test.rb | 24 +++++++++++++- 6 files changed, 151 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index accbb53..abfd49b 100644 --- a/README.md +++ b/README.md @@ -55,17 +55,12 @@ linters: - [GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter](./docs/rules/accessibility/avoid-both-disabled-and-aria-disabled-counter.md) - [GitHub::Accessibility::AvoidGenericLinkTextCounter](./docs/rules/accessibility/avoid-generic-link-text-counter.md) -<<<<<<< HEAD - [GitHub::Accessibility::DisabledAttributeCounter](./docs/rules/accessibility/disabled-attribute-counter.md) -- [GitHub::Accessibility::IframeHasTitle](./docs/rules/accessibility/iframe-has-title.md) - [GitHub::Accessibility::LandmarkHasLabelCounter](./docs/rules/accessibility/landmark-has-label-counter.md) -- [GitHub::Accessibility::ImageHasAlt](./docs/rules/accessibility/image-has-alt.md) - [GitHub::Accessibility::LinkHasHrefCounter](./docs/rules/accessibility/link-has-href-counter.md) - [GitHub::Accessibility::NestedInteractiveElementsCounter](./docs/rules/accessibility/nested-interactive-elements-counter.md) -======= - [GitHub::Accessibility::IframeHasTitleCounter](./docs/rules/accessibility/iframe-has-title-counter.md) - [GitHub::Accessibility::ImageHasAltCounter](./docs/rules/accessibility/image-has-alt-counter.md) ->>>>>>> 3ac20b8 (Migrate remaining rules to counters) - [GitHub::Accessibility::NoAriaLabelMisuseCounter](./docs/rules/accessibility/no-aria-label-misuse-counter.md) - [GitHub::Accessibility::NoPositiveTabIndexCounter](./docs/rules/accessibility/no-positive-tab-index-counter.md) - [GitHub::Accessibility::NoRedundantImageAltCounter](./docs/rules/accessibility/no-redundant-image-alt-counter.md) diff --git a/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_counter_test.rb b/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_counter_test.rb index 2bcae8e..b8da83c 100644 --- a/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_counter_test.rb +++ b/test/linters/accessibility/avoid_both_disabled_and_aria_disabled_counter_test.rb @@ -35,4 +35,36 @@ def test_does_not_warn_if_only_aria_disabled_attribute_is_set assert_empty @linter.offenses end + + def test_does_not_raise_when_ignore_comment_with_correct_count + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter 1 %> + + ERB + + assert_equal @file, corrected_content + end + + def test_does_autocorrect_when_ignores_are_not_correct + @file = <<~ERB + + ERB + refute_equal @file, corrected_content + + expected_content = <<~ERB + <%# erblint:counter GitHub::Accessibility::AvoidBothDisabledAndAriaDisabledCounter 1 %> + + ERB + assert_equal expected_content, corrected_content + end end diff --git a/test/linters/accessibility/iframe_has_title_counter_test.rb b/test/linters/accessibility/iframe_has_title_counter_test.rb index 220b6cd..661ab4d 100644 --- a/test/linters/accessibility/iframe_has_title_counter_test.rb +++ b/test/linters/accessibility/iframe_has_title_counter_test.rb @@ -27,4 +27,36 @@ def test_does_not_warn_if_iframe_has_title_set_to_string assert_empty @linter.offenses end + + def test_does_not_raise_when_ignore_comment_with_correct_count + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::IframeHasTitleCounter 1 %> + + ERB + + @linter.run(processed_source) + assert_empty @linter.offenses + end + + def test_does_not_autocorrect_when_ignores_are_correct + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::IframeHasTitleCounter 1 %> + + ERB + + assert_equal @file, corrected_content + end + + def test_does_autocorrect_when_ignores_are_not_correct + @file = <<~ERB + + ERB + refute_equal @file, corrected_content + + expected_content = <<~ERB + <%# erblint:counter GitHub::Accessibility::IframeHasTitleCounter 1 %> + + ERB + assert_equal expected_content, corrected_content + end end diff --git a/test/linters/accessibility/image_has_alt_counter_test.rb b/test/linters/accessibility/image_has_alt_counter_test.rb index eeabe80..a80235a 100644 --- a/test/linters/accessibility/image_has_alt_counter_test.rb +++ b/test/linters/accessibility/image_has_alt_counter_test.rb @@ -27,4 +27,36 @@ def test_does_not_warn_if_image_has_alt_attribute_set_to_string assert_empty @linter.offenses end + + def test_does_not_raise_when_ignore_comment_with_correct_count + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::ImageHasAltCounter 1 %> + + ERB + + @linter.run(processed_source) + assert_empty @linter.offenses + end + + def test_does_not_autocorrect_when_ignores_are_correct + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::ImageHasAltCounter 1 %> + + ERB + + assert_equal @file, corrected_content + end + + def test_does_autocorrect_when_ignores_are_not_correct + @file = <<~ERB + + ERB + refute_equal @file, corrected_content + + expected_content = <<~ERB + <%# erblint:counter GitHub::Accessibility::ImageHasAltCounter 1 %> + + ERB + assert_equal expected_content, corrected_content + end end diff --git a/test/linters/accessibility/no_positive_tab_index_counter_test.rb b/test/linters/accessibility/no_positive_tab_index_counter_test.rb index 177e645..096393e 100644 --- a/test/linters/accessibility/no_positive_tab_index_counter_test.rb +++ b/test/linters/accessibility/no_positive_tab_index_counter_test.rb @@ -27,4 +27,36 @@ def test_does_not_warn_if_zero_tabindex_is_used assert_empty @linter.offenses end + + def test_does_not_raise_when_ignore_comment_with_correct_count + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::NoPositiveTabIndexCounter 1 %> + + ERB + + @linter.run(processed_source) + assert_empty @linter.offenses + end + + def test_does_not_autocorrect_when_ignores_are_correct + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::NoPositiveTabIndexCounter 1 %> + + ERB + + assert_equal @file, corrected_content + end + + def test_does_autocorrect_when_ignores_are_not_correct + @file = <<~ERB + + ERB + refute_equal @file, corrected_content + + expected_content = <<~ERB + <%# erblint:counter GitHub::Accessibility::NoPositiveTabIndexCounter 1 %> + + ERB + assert_equal expected_content, corrected_content + end end diff --git a/test/linters/accessibility/no_redundant_image_alt_counter_test.rb b/test/linters/accessibility/no_redundant_image_alt_counter_test.rb index 04b1bf2..7de7dc4 100644 --- a/test/linters/accessibility/no_redundant_image_alt_counter_test.rb +++ b/test/linters/accessibility/no_redundant_image_alt_counter_test.rb @@ -28,7 +28,7 @@ def test_does_not_warn_if_alt_contains_no_redundant_text assert_empty @linter.offenses end - def test_does_not_warn_if_linter_is_disabled_in_file + def test_does_not_raise_when_ignore_comment_with_correct_count @file = <<~ERB <%# erblint:counter GitHub::Accessibility::NoRedundantImageAltCounter 1 %> image of an octopus @@ -37,4 +37,26 @@ def test_does_not_warn_if_linter_is_disabled_in_file @linter.run(processed_source) assert_empty @linter.offenses end + + def test_does_not_autocorrect_when_ignores_are_correct + @file = <<~ERB + <%# erblint:counter GitHub::Accessibility::NoRedundantImageAltCounter 1 %> + image of an octopus + ERB + + assert_equal @file, corrected_content + end + + def test_does_autocorrect_when_ignores_are_not_correct + @file = <<~ERB + image of an octopus + ERB + refute_equal @file, corrected_content + + expected_content = <<~ERB + <%# erblint:counter GitHub::Accessibility::NoRedundantImageAltCounter 1 %> + image of an octopus + ERB + assert_equal expected_content, corrected_content + end end