From 6cc6e8a8d99e2e002c2785f99e9b30dcece39322 Mon Sep 17 00:00:00 2001 From: JP Date: Mon, 3 Jan 2022 11:30:45 -0800 Subject: [PATCH] update fixer for has-valid-accessibility-descriptors --- .../rules/has-valid-accessibility-descriptors-test.js | 7 +++++-- src/rules/has-valid-accessibility-descriptors.js | 10 ++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/__tests__/src/rules/has-valid-accessibility-descriptors-test.js b/__tests__/src/rules/has-valid-accessibility-descriptors-test.js index 9eb5af6..9ecf8b1 100644 --- a/__tests__/src/rules/has-valid-accessibility-descriptors-test.js +++ b/__tests__/src/rules/has-valid-accessibility-descriptors-test.js @@ -71,6 +71,9 @@ ruleTester.run('has-valid-accessibility-descriptors', rule, { Back `, }, + { + code: ``, + }, ].map(parserOptionsMapper), invalid: [ { @@ -78,14 +81,14 @@ ruleTester.run('has-valid-accessibility-descriptors', rule, { Back `, errors: [expectedError], - output: ` + output: ` Back `, }, { code: ``, errors: [expectedError], - output: ``, + output: ``, }, ].map(parserOptionsMapper), }); diff --git a/src/rules/has-valid-accessibility-descriptors.js b/src/rules/has-valid-accessibility-descriptors.js index 1541060..4246dcb 100644 --- a/src/rules/has-valid-accessibility-descriptors.js +++ b/src/rules/has-valid-accessibility-descriptors.js @@ -19,6 +19,9 @@ const errorMessage = const schema = generateObjSchema(); +const hasSpreadProps = (attributes) => + attributes.some((attr) => attr.type === 'JSXSpreadAttribute'); + module.exports = { meta: { docs: {}, @@ -35,7 +38,8 @@ module.exports = { 'accessibilityLabel', 'accessibilityActions', 'accessible', - ]) + ]) && + !hasSpreadProps(node.attributes) ) { context.report({ node, @@ -44,7 +48,9 @@ module.exports = { return fixer.insertTextAfterRange( // $FlowFixMe node.name.range, - ' accessible={false}' + isTouchable(node, context) + ? ' accessibilityRole="button"' + : ' accessibilityLabel="Text input field"' ); }, });