Skip to content

Commit

Permalink
Fix deprecated-classes rule condition checks (#834)
Browse files Browse the repository at this point in the history
* fix: short circuit condition if undefined

* test: add expression and missing prop tests
  • Loading branch information
andresriveratoro committed Jun 16, 2022
1 parent 6ce96b2 commit c186ca3
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
7 changes: 5 additions & 2 deletions packages/eslint-plugin/lib/rules/deprecated-classes.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const getPropNode = (node, propName) =>
node.openingElement.attributes.find(n => n.name.name === propName);
node.openingElement.attributes.find(n => n.name?.name === propName);

module.exports = {
meta: {
Expand All @@ -18,7 +18,10 @@ module.exports = {
* Deprecate green button
*/
const className = getPropNode(node, 'className');
if (className?.value.value.includes('va-button-primary')) {
if (
className?.value?.value?.includes('va-button-primary') ||
className?.value?.expression?.value?.includes('va-button-primary')
) {
context.report({
node,
message:
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@department-of-veterans-affairs/eslint-plugin",
"version": "1.2.0",
"version": "1.2.1",
"description": "ESLint plugin for va.gov projects",
"homepage": "https://github.com/department-of-veterans-affairs/veteran-facing-services-tools/tree/master/packages/eslint-plugin#readme",
"bugs": {
Expand Down
9 changes: 9 additions & 0 deletions packages/eslint-plugin/tests/lib/rules/deprecated-classes.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ ruleTester.run('deprecated-classes', rule, {
{
code: `<button onClick={verify} type="button" className="usa-button-primary">Verify your identity</button>`,
},
{
code: '<button>Edit</button>',
},
],
invalid: [
{
Expand All @@ -26,5 +29,11 @@ ruleTester.run('deprecated-classes', rule, {
'The va-button-primary utility class is deprecated. Please visit https://design.va.gov/components/button/ for our guidance on buttons.',
],
},
{
code: `<button onClick={verify} type="button" className={"usa-button-primary va-button-primary"}>Verify your identity</button>`,
errors: [
'The va-button-primary utility class is deprecated. Please visit https://design.va.gov/components/button/ for our guidance on buttons.',
],
},
],
});

0 comments on commit c186ca3

Please sign in to comment.