diff --git a/src/rules/__tests__/role-has-required-aria-props.test.js b/src/rules/__tests__/role-has-required-aria-props.test.js index a1937a50..578536d8 100644 --- a/src/rules/__tests__/role-has-required-aria-props.test.js +++ b/src/rules/__tests__/role-has-required-aria-props.test.js @@ -3,7 +3,9 @@ const makeRuleTester = require("./makeRuleTester"); makeRuleTester("role-has-required-aria-props", rule, { valid: [ - "" + "", + "", + "" ], invalid: [ { diff --git a/src/rules/role-has-required-aria-props.js b/src/rules/role-has-required-aria-props.js index 72ae0003..03914470 100644 --- a/src/rules/role-has-required-aria-props.js +++ b/src/rules/role-has-required-aria-props.js @@ -32,29 +32,37 @@ module.exports = { return; } - roleValue - .toLowerCase() - .split(" ") - .forEach((role) => { - if (!roles.has(role)) { - return; - } - - const requiredAttributes = Object.keys( - roles.get(role).requiredProps - ); - - if (!hasAttributes(node, requiredAttributes)) { - context.report({ - node, - messageId: "default", - data: { - role: role.toLowerCase(), - attributes: requiredAttributes.join(", ").toLowerCase() - } - }); - } - }); + const isValid = (value) => + value + .toLowerCase() + .split(" ") + .forEach((role) => { + if (!roles.has(role)) { + return; + } + + const requiredAttributes = Object.keys( + roles.get(role).requiredProps + ); + + if (!hasAttributes(node, requiredAttributes)) { + context.report({ + node, + messageId: "default", + data: { + role: role.toLowerCase(), + attributes: requiredAttributes.join(", ").toLowerCase() + } + }); + } + }); + + if (typeof roleValue !== "string") { + // when it's a dynamic value ignore + return; + } + + isValid(roleValue); } }); }