const ruleTester = require("../../ruletester"); import * as rule from "./kebabToggle-replace-with-menuToggle"; const message = "KebabToggle has been removed from PatternFly. Running the fix for this rule will update to our MenuToggle, but additional manual updates may be required."; const menuToggleImportMessage = 'MenuToggle must be imported from the "@patternfly/react-core" package in order to update KebabToggle.'; ruleTester.run("kebabToggle-replace-with-menuToggle", rule, { valid: [ { code: ``, }, { code: `import { KebabToggle } from '@patternfly/someOtherPackage'; `, }, { code: `import { KebabToggle } from '@patternfly/someOtherPackage'; const Component = KebabToggle;`, }, { code: `export { KebabToggle } from '@patternfly/someOtherPackage';`, }, { code: `export { KebabToggle };`, }, { code: `export default KebabToggle;`, }, ], invalid: [ { code: `import { KebabToggle } from "@patternfly/react-core/deprecated";`, output: `import { MenuToggle } from "@patternfly/react-core";\nimport EllipsisVIcon from "@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon";`, errors: [ { message, type: "ImportDeclaration", }, ], }, { code: `import { KebabToggle } from "@patternfly/react-core/deprecated"; import { MenuToggle } from "@patternfly/react-core";`, output: `\nimport EllipsisVIcon from "@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon"; import { MenuToggle } from "@patternfly/react-core";`, errors: [ { message, type: "ImportDeclaration", }, ], }, { code: `import { KebabToggle } from "@patternfly/react-core/deprecated"; import { MenuToggle } from "@patternfly/react-core"; import EllipsisVIcon from "@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon";`, output: ` import { MenuToggle } from "@patternfly/react-core"; import EllipsisVIcon from "@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon";`, errors: [ { message, type: "ImportDeclaration", }, ], }, { code: `import { KebabToggle, Select } from "@patternfly/react-core/deprecated";`, output: `import { Select } from "@patternfly/react-core/deprecated";\nimport EllipsisVIcon from "@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon";\nimport { MenuToggle } from "@patternfly/react-core";`, errors: [ { message, type: "ImportDeclaration", }, ], }, { code: `import { KebabToggle } from "@patternfly/react-core/deprecated"; `, output: `import { MenuToggle } from "@patternfly/react-core";\nimport EllipsisVIcon from "@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon";