const ruleTester = require("../../ruletester");
import * as rule from "./loginMainFooterLinksItem-structure-updated";
const loginMainFooterLinksItemError = {
message: `LoginMainFooterLinksItem structure has changed. Instead of passing it many properties, everything is now passed directly in a children component.`,
type: "JSXElement",
};
ruleTester.run("loginMainFooterLinksItem-structure-updated", rule, {
valid: [
{
code: ``,
},
],
invalid: [
{
code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core';
GitHub icon
`,
output: `import { LoginMainFooterLinksItem, Button } from '@patternfly/react-core';
`,
errors: [loginMainFooterLinksItemError],
},
// with "button" as a linkComponent
{
code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core';
GitHub icon
`,
output: `import { LoginMainFooterLinksItem, Button } from '@patternfly/react-core';
`,
errors: [loginMainFooterLinksItemError],
},
// with "span" as a linkComponent
{
code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core';
GitHub icon
`,
output: `import { LoginMainFooterLinksItem, Button } from '@patternfly/react-core';
`,
errors: [loginMainFooterLinksItemError],
},
// with other attributes that should not be removed
{
code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core';
GitHub icon
`,
output: `import { LoginMainFooterLinksItem, Button } from '@patternfly/react-core';
`,
errors: [loginMainFooterLinksItemError],
},
// without attributes
{
code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core';
GitHub icon
`,
output: `import { LoginMainFooterLinksItem, Button } from '@patternfly/react-core';
`,
errors: [loginMainFooterLinksItemError],
},
// self-closing with children as attribute
{
code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core';
GitHub icon}
/>`,
output: `import { LoginMainFooterLinksItem, Button } from '@patternfly/react-core';
`,
errors: [loginMainFooterLinksItemError],
},
// with children as attribute
{
code: `import { LoginMainFooterLinksItem } from '@patternfly/react-core';
GitHub icon}
>`,
output: `import { LoginMainFooterLinksItem, Button } from '@patternfly/react-core';
`,
errors: [loginMainFooterLinksItemError],
},
// with Button component already imported
{
code: `import { Button, LoginMainFooterLinksItem } from '@patternfly/react-core';
<>
GitHub icon
>`,
output: `import { Button, LoginMainFooterLinksItem } from '@patternfly/react-core';
<>
>`,
errors: [loginMainFooterLinksItemError],
},
],
});