const ruleTester = require("../../ruletester");
import * as rule from "./pageToggleButton-replace-barsIcon-with-isHamburgerButton";
ruleTester.run("pageToggleButton-replace-barsIcon-with-isHamburgerButton", rule, {
valid: [
{
code: ``,
},
{
code: `import { PageToggleButton } from '@patternfly/react-core'; `,
},
{
code: `import { PageToggleButton } from '@patternfly/react-core'; `,
},
{
code: `import { PageToggleButton } from '@patternfly/react-core'; Some text content`,
},
{
code: `import { PageToggleButton } from '@patternfly/react-core'; `,
},
// PageToggleButton not imported from PatternFly, but BarsIcon is
{
code: `import { BarsIcon } from '@patternfly/react-icons'; `,
},
// Neither PageToggleButton nor BarsIcon imported from PatternFly
{
code: `import { BarsIcon } from 'some-other-package'; `,
},
// PageToggleButton imported from PatternFly, but BarsIcon not imported from PatternFly
{
code: `import { PageToggleButton } from '@patternfly/react-core'; import { BarsIcon } from 'some-other-package'; `,
},
],
invalid: [
{
code: `import { PageToggleButton } from '@patternfly/react-core'; import { BarsIcon } from '@patternfly/react-icons'; `,
output: `import { PageToggleButton } from '@patternfly/react-core'; import { BarsIcon } from '@patternfly/react-icons'; `,
errors: [
{
message: `The BarsIcon child component should be replaced with the \`isHamburgerButton\` prop on PageToggleButton.`,
type: "JSXElement",
},
],
},
{
code: `import { PageToggleButton } from '@patternfly/react-core/dist/esm/components/PageToggleButton/index.js'; import { BarsIcon } from '@patternfly/react-icons'; `,
output: `import { PageToggleButton } from '@patternfly/react-core/dist/esm/components/PageToggleButton/index.js'; import { BarsIcon } from '@patternfly/react-icons'; `,
errors: [
{
message: `The BarsIcon child component should be replaced with the \`isHamburgerButton\` prop on PageToggleButton.`,
type: "JSXElement",
},
],
},
{
code: `import { PageToggleButton } from '@patternfly/react-core/dist/js/components/PageToggleButton/index.js'; import { BarsIcon } from '@patternfly/react-icons'; `,
output: `import { PageToggleButton } from '@patternfly/react-core/dist/js/components/PageToggleButton/index.js'; import { BarsIcon } from '@patternfly/react-icons'; `,
errors: [
{
message: `The BarsIcon child component should be replaced with the \`isHamburgerButton\` prop on PageToggleButton.`,
type: "JSXElement",
},
],
},
{
code: `import { PageToggleButton } from '@patternfly/react-core/dist/dynamic/components/PageToggleButton/index.js'; import { BarsIcon } from '@patternfly/react-icons'; `,
output: `import { PageToggleButton } from '@patternfly/react-core/dist/dynamic/components/PageToggleButton/index.js'; import { BarsIcon } from '@patternfly/react-icons'; `,
errors: [
{
message: `The BarsIcon child component should be replaced with the \`isHamburgerButton\` prop on PageToggleButton.`,
type: "JSXElement",
},
],
},
{
code: `import { PageToggleButton } from '@patternfly/react-core'; import { BarsIcon } from '@patternfly/react-icons'; `,
output: `import { PageToggleButton } from '@patternfly/react-core'; import { BarsIcon } from '@patternfly/react-icons'; `,
errors: [
{
message: `The BarsIcon child component should be replaced with the \`isHamburgerButton\` prop on PageToggleButton.`,
type: "JSXElement",
},
],
},
],
});