diff --git a/generate.js b/generate.js
index 7f1e0ef07..c78c3800a 100644
--- a/generate.js
+++ b/generate.js
@@ -11,10 +11,10 @@ console.log('Generating rule', newRuleName);
// Write rule file
fs.writeFileSync(path.join(
__dirname,
- 'packages/eslint-plugin-pf-codemods/lib/rules',
+ 'packages/eslint-plugin-pf-codemods/lib/rules/v5',
`${newRuleName}.js`
),
- `const { getPackageImports } = require('../helpers');
+ `const { getPackageImports } = require('../../helpers');
// https://github.com/patternfly/patternfly-react/pull/YOURNUMBERHERE
module.exports = {
@@ -44,11 +44,11 @@ module.exports = {
// Write test file
fs.writeFileSync(path.join(
__dirname,
- 'packages/eslint-plugin-pf-codemods/test/rules',
+ 'packages/eslint-plugin-pf-codemods/test/rules/v5',
`${newRuleName}.js`
),
-`const ruleTester = require('../ruletester');
-const rule = require('../../lib/rules/${newRuleName}');
+`const ruleTester = require('../../ruletester');
+const rule = require('../../../lib/rules/v5/${newRuleName}');
ruleTester.run("${newRuleName}", rule, {
valid: [
@@ -76,5 +76,5 @@ const ruleIndex = fs.readFileSync(ruleIndexPath, 'utf8');
fs.writeFileSync(
ruleIndexPath,
// (ab)Use fact that `rules` object is at top of file
- ruleIndex.replace("};", ` "${newRuleName}": require('./lib/rules/${newRuleName}'),\n};`)
+ ruleIndex.replace("};", ` "${newRuleName}": require('./lib/rules/v5/${newRuleName}'),\n};`)
);
diff --git a/packages/eslint-plugin-pf-codemods/index.js b/packages/eslint-plugin-pf-codemods/index.js
index bfe062f8c..845b6903e 100644
--- a/packages/eslint-plugin-pf-codemods/index.js
+++ b/packages/eslint-plugin-pf-codemods/index.js
@@ -44,9 +44,11 @@ const rules = {
"chartVoronoiContainer-remove-allowTooltip": require('./lib/rules/v4/chartVoronoiContainer-remove-allowTooltip'),
"chart-remove-allowZoom": require('./lib/rules/v4/chartVoronoiContainer-remove-allowTooltip'),
"react-icons-remove-icon": require('./lib/rules/v4/react-icons-remove-icon'),
+
+ "divider-remove-isVertical": require('./lib/rules/v5/divider-remove-isVertical'),
+ "tableComposable-remove-hasSelectableRowCaption": require('./lib/rules/v5/tableComposable-remove-hasSelectableRowCaption'),
"toolbar-remove-visiblity": require('./lib/rules/v5/toolbar-remove-visiblity'),
"tooltip-remove-props": require('./lib/rules/v5/tooltip-remove-props'),
- "divider-remove-isVertical": require('./lib/rules/v5/divider-remove-isVertical'),
};
module.exports = {
diff --git a/packages/eslint-plugin-pf-codemods/lib/rules/v5/tableComposable-remove-hasSelectableRowCaption.js b/packages/eslint-plugin-pf-codemods/lib/rules/v5/tableComposable-remove-hasSelectableRowCaption.js
new file mode 100644
index 000000000..aa2c8aff4
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/lib/rules/v5/tableComposable-remove-hasSelectableRowCaption.js
@@ -0,0 +1,13 @@
+const { renameProps } = require('../../helpers');
+
+// https://github.com/patternfly/patternfly-react/pull/8352
+const renames = {
+ 'TableComposable': {
+ hasSelectableRowCaption: ''
+ }
+};
+
+module.exports = {
+ meta: { fixable: 'code' },
+ create: renameProps(renames)
+};
\ No newline at end of file
diff --git a/packages/eslint-plugin-pf-codemods/test/rules/v5/tableComposable-remove-hasSelectableRowCaption.js b/packages/eslint-plugin-pf-codemods/test/rules/v5/tableComposable-remove-hasSelectableRowCaption.js
new file mode 100644
index 000000000..23169b4db
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/test/rules/v5/tableComposable-remove-hasSelectableRowCaption.js
@@ -0,0 +1,24 @@
+const ruleTester = require('../../ruletester');
+const rule = require('../../../lib/rules/v5/tableComposable-remove-hasSelectableRowCaption');
+
+ruleTester.run("tableComposable-remove-hasSelectableRowCaption", rule, {
+ valid: [
+ {
+ code: `import { TableComposable } from '@patternfly/react-core'; `,
+ },
+ {
+ // No @patternfly/react-core import
+ code: ``,
+ }
+ ],
+ invalid: [
+ {
+ code: `import { TableComposable } from '@patternfly/react-core'; `,
+ output: `import { TableComposable } from '@patternfly/react-core'; `,
+ errors: [{
+ message: `hasSelectableRowCaption prop for TableComposable has been removed`,
+ type: "JSXOpeningElement",
+ }]
+ },
+ ]
+});
\ No newline at end of file
diff --git a/packages/pf-codemods/README.md b/packages/pf-codemods/README.md
index 69a598944..667c5de78 100644
--- a/packages/pf-codemods/README.md
+++ b/packages/pf-codemods/README.md
@@ -56,6 +56,24 @@ Out:
```
+### tableComposable-remove-hasSelectableRowCaption [(#8352)](https://github.com/patternfly/patternfly-react/pull/8352)
+
+We've removed the depracated `hasSelectableRowCaption` prop.
+
+#### Examples
+
+In:
+
+```jsx
+
+```
+
+Out:
+
+```jsx
+
+```
+
### toolbar-remove-visiblity [(#8212)](https://github.com/patternfly/patternfly-react/pull/8212)
We've removed the deprecated `visiblity` prop. This rule wil replace it with the correct spelled `visibility` prop.