const ruleTester = require("../../ruletester"); import * as rule from "./data-codemods-cleanup"; const message = `This rule will remove data-codemods attributes and comments, which were introduced by our codemods in order to work correctly.`; ruleTester.run("data-codemods-cleanup", rule, { valid: [ { code: `import { DualListSelector /* data-codemods */ } from 'somewhereElse';`, }, { code: `import { LoginMainFooterLinksItem } from 'somewhereElse'; `, }, ], invalid: [ { code: `import { DualListSelector /* data-codemods */ } from '@patternfly/react-core';`, output: `import { DualListSelector } from '@patternfly/react-core';`, errors: [ { message, type: "ImportSpecifier", }, ], }, // aliased import { code: `import { DualListSelector as DLS /* data-codemods */ } from '@patternfly/react-core';`, output: `import { DualListSelector as DLS } from '@patternfly/react-core';`, errors: [ { message, type: "ImportSpecifier", }, ], }, { code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core'; `, output: `import { LoginMainFooterLinksItem } from '@patternfly/react-core'; `, errors: [ { message, type: "JSXOpeningElement", }, ], }, { code: `import { MastheadLogo } from '@patternfly/react-core'; `, output: `import { MastheadLogo } from '@patternfly/react-core'; `, errors: [ { message, type: "JSXOpeningElement", }, ], }, // dist imports { code: `import { MastheadLogo } from '@patternfly/react-core/dist/esm/components/MastheadLogo'; `, output: `import { MastheadLogo } from '@patternfly/react-core/dist/esm/components/MastheadLogo'; `, errors: [ { message, type: "JSXOpeningElement", }, ], }, { code: `import { MastheadLogo } from '@patternfly/react-core/dist/js/components/MastheadLogo'; `, output: `import { MastheadLogo } from '@patternfly/react-core/dist/js/components/MastheadLogo'; `, errors: [ { message, type: "JSXOpeningElement", }, ], }, // with alias { code: `import { MastheadLogo as ML } from '@patternfly/react-core'; `, output: `import { MastheadLogo as ML } from '@patternfly/react-core'; `, errors: [ { message, type: "JSXOpeningElement", }, ], }, // comment including other text and data-codemods { code: `import { DualListSelector /* This has been passed by data-codemods */ } from '@patternfly/react-core';`, output: `import { DualListSelector } from '@patternfly/react-core';`, errors: [ { message, type: "ImportSpecifier", }, ], }, // data-codemods attribute including other value than true { code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core'; `, output: `import { LoginMainFooterLinksItem } from '@patternfly/react-core'; `, errors: [ { message, type: "JSXOpeningElement", }, ], }, ], });