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",
},
],
},
],
});