From 5c9048b1ab10dba40866d4086e3d4abfbab33a50 Mon Sep 17 00:00:00 2001 From: heygsc <1596920983@qq.com> Date: Fri, 9 Aug 2024 11:41:39 +0800 Subject: [PATCH] feat(linter): add fixer for jsx_ally/no_aria_hidden_on_focusable --- .../jsx_a11y/no_aria_hidden_on_focusable.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/crates/oxc_linter/src/rules/jsx_a11y/no_aria_hidden_on_focusable.rs b/crates/oxc_linter/src/rules/jsx_a11y/no_aria_hidden_on_focusable.rs index 57c1edc35d604..bc21518695080 100644 --- a/crates/oxc_linter/src/rules/jsx_a11y/no_aria_hidden_on_focusable.rs +++ b/crates/oxc_linter/src/rules/jsx_a11y/no_aria_hidden_on_focusable.rs @@ -38,7 +38,8 @@ declare_oxc_lint!( ///
/// ``` NoAriaHiddenOnFocusable, - correctness + correctness, + fix ); impl Rule for NoAriaHiddenOnFocusable { @@ -49,7 +50,10 @@ impl Rule for NoAriaHiddenOnFocusable { if let Some(aria_hidden_prop) = has_jsx_prop_ignore_case(jsx_el, "aria-hidden") { if is_aria_hidden_true(aria_hidden_prop) && is_focusable(ctx, jsx_el) { if let JSXAttributeItem::Attribute(boxed_attr) = aria_hidden_prop { - ctx.diagnostic(no_aria_hidden_on_focusable_diagnostic(boxed_attr.span)); + ctx.diagnostic_with_fix( + no_aria_hidden_on_focusable_diagnostic(boxed_attr.span), + |fixer| fixer.delete(&boxed_attr.span), + ); } } } @@ -127,5 +131,14 @@ fn test() { r#";"#, ]; - Tester::new(NoAriaHiddenOnFocusable::NAME, pass, fail).test_and_snapshot(); + let fix = vec![ + (r#";"#, r#";"#), + (r#";"#, ";"), + (r#""#, r#""#), + (r#""#, ""), + (r#""#, ""), + (r#";"#, r#"text
;"#), + ]; + + Tester::new(NoAriaHiddenOnFocusable::NAME, pass, fail).expect_fix(fix).test_and_snapshot(); }