From 6814ff685ccc038b272d4191929812eb1e90035b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pet=C5=99=C3=ADk?= Date: Thu, 16 Feb 2023 14:44:16 +0100 Subject: [PATCH 1/3] chore(Alert) replace titleHeadingLevel prop --- .../v5/alert-remove-titleHeadingLevel.js | 11 +++++++++ .../v5/alert-remove-titleHeadingLevel.js | 24 +++++++++++++++++++ test/test.tsx | 1 + 3 files changed, 36 insertions(+) create mode 100644 packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js create mode 100644 packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js diff --git a/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js b/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js new file mode 100644 index 000000000..579274e89 --- /dev/null +++ b/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js @@ -0,0 +1,11 @@ +const { renameProp } = require('../../helpers'); + + // https://github.com/patternfly/patternfly-react/pull/https://github.com/patternfly/patternfly-react/pull/8518 + module.exports = { + meta: { fixable: 'code' }, + create: renameProp( + 'Alert', + {'titleHeadingLevel': 'component'}, + node => `titleHeadingLevel prop has been removed for ${node.name.name} and replaced with the component prop.` + ), + }; diff --git a/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js b/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js new file mode 100644 index 000000000..d8d3c822a --- /dev/null +++ b/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js @@ -0,0 +1,24 @@ +const ruleTester = require('../../ruletester'); +const rule = require('../../../lib/rules/v5/alert-remove-titleHeadingLevel'); + +ruleTester.run("alert-remove-titleHeadingLevel", rule, { + valid: [ + { + code: `import { Alert } from '@patternfly/react-core'; `, + }, + { + // No @patternfly/react-core import + code: ``, + } + ], + invalid: [ + { + code: `import { Alert } from '@patternfly/react-core'; `, + output: `import { Alert } from '@patternfly/react-core'; `, + errors: [{ + message: `titleHeadingLevel prop has been removed for Alert and replaced with the component prop.`, + type: "JSXOpeningElement", + }] + } + ] +}); diff --git a/test/test.tsx b/test/test.tsx index 677d54f2b..eaa60bcb7 100644 --- a/test/test.tsx +++ b/test/test.tsx @@ -37,6 +37,7 @@ const isRead = true; const newTheme = getCustomTheme("1", "2", "3"); <> +