diff --git a/packages/x-codemod/src/v6.0.0/pickers/experiment/actual.spec.js b/packages/x-codemod/src/v6.0.0/pickers/experiment/actual.spec.js new file mode 100644 index 0000000000000..a9ff685bd3e2a --- /dev/null +++ b/packages/x-codemod/src/v6.0.0/pickers/experiment/actual.spec.js @@ -0,0 +1,9 @@ +import React from 'react'; + +const Button = (props) => { + return ( + + ); +}; diff --git a/packages/x-codemod/src/v6.0.0/pickers/experiment/adapter-change-import.test.ts b/packages/x-codemod/src/v6.0.0/pickers/experiment/adapter-change-import.test.ts new file mode 100644 index 0000000000000..222dca1c4a598 --- /dev/null +++ b/packages/x-codemod/src/v6.0.0/pickers/experiment/adapter-change-import.test.ts @@ -0,0 +1,27 @@ +import path from 'path'; +import { expect } from 'chai'; +import jscodeshift from 'jscodeshift'; +import transform from '.'; +import readFile from '../../../util/readFile'; + +function read(fileName) { + return readFile(path.join(__dirname, fileName)); +} + +describe.only('v6.0.0/pickers', () => { + describe('view-components-rename-value-prop', () => { + it('transforms props as needed', () => { + const actual = transform({ source: read('./actual.spec.js') }, { jscodeshift }, {}); + + const expected = read('./expected.spec.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + + it('should be idempotent', () => { + const actual = transform({ source: read('./expected.spec.js') }, { jscodeshift }, {}); + + const expected = read('./expected.spec.js'); + expect(actual).to.equal(expected, 'The transformed version should be correct'); + }); + }); +}); diff --git a/packages/x-codemod/src/v6.0.0/pickers/experiment/expected.spec.js b/packages/x-codemod/src/v6.0.0/pickers/experiment/expected.spec.js new file mode 100644 index 0000000000000..bac08cfb86440 --- /dev/null +++ b/packages/x-codemod/src/v6.0.0/pickers/experiment/expected.spec.js @@ -0,0 +1,9 @@ +import React from 'react'; + +const Button = (props) => { + return ( + + ); +}; diff --git a/packages/x-codemod/src/v6.0.0/pickers/experiment/index.ts b/packages/x-codemod/src/v6.0.0/pickers/experiment/index.ts new file mode 100644 index 0000000000000..37d75c081b9fa --- /dev/null +++ b/packages/x-codemod/src/v6.0.0/pickers/experiment/index.ts @@ -0,0 +1,12 @@ +export default function transformer(file, { jscodeshift: j }, options) { + const source = j(file.source); + + source + .find(j.JSXElement) + .filter((path) => path.value.openingElement.name.name === 'button') // Find all button jsx elements + .find(j.JSXAttribute) // Find all attributes (props) on the button + .filter((path) => path.node.name.name === 'onClick') // Filter to only props called onClick + .remove(); // Remove everything that matched + + return source.toSource(); +}