const ruleTester = require("../../ruletester");
import * as rule from "./no-duplicate-import-specifiers";
ruleTester.run("no-duplicate-import-specifiers", rule, {
valid: [
{
// we care only about imports from "@patternfly/react-core"
code: `import { Button, Button } from "somewhere"`,
},
{
code: `import { Button, Button as AnotherButton } from "@patternfly/react-core";
<>
Another one
>`,
},
{
code: `import { Select } from '@patternfly/react-core/deprecated';
import { Select } from '@patternfly/react-core';`
},
{
code: `import { Select } from '@patternfly/react-core/deprecated';
import { Select } from '@patternfly/react-core/dist/dynamic/components/Select';`
},
{
code: `import { Select } from '@patternfly/react-core/next';
import { Select } from '@patternfly/react-core';`
},
{
code: `import { Select } from '@patternfly/react-core/next';
import { Select } from '@patternfly/react-core/dist/dynamic/components/Select';`
}
],
invalid: [
{
code: `import { Button, Button } from "@patternfly/react-core";
`,
output: `import { Button, } from "@patternfly/react-core";
`,
errors: [
{
message: `Duplicate import specifier Button imported from '@patternfly/react-core'.`,
type: "ImportSpecifier",
},
],
},
{
code: `import { Button } from "@patternfly/react-core";
import { Button } from "@patternfly/react-core";
`,
output: `import { Button } from "@patternfly/react-core";
`,
errors: [
{
message: `Duplicate import specifier Button imported from '@patternfly/react-core'.`,
type: "ImportSpecifier",
},
],
},
{
code: `import { Button } from "@patternfly/react-core";
import { Button } from '@patternfly/react-core/dist/dynamic/components/Button';
`,
output: `import { Button } from "@patternfly/react-core";
`,
errors: [
{
message: `Duplicate import specifier Button imported from '@patternfly/react-core/dist/dynamic/components/Button'.`,
type: "ImportSpecifier",
},
],
},
{
code: `import { Button as BTN, TextInput, Button as BTN } from "@patternfly/react-core";
<>
Sample button
Text
>`,
output: `import { Button as BTN, TextInput, } from "@patternfly/react-core";
<>
Sample button
Text
>`,
errors: [
{
message: `Duplicate import specifier BTN imported from '@patternfly/react-core'.`,
type: "ImportSpecifier",
},
],
},
],
});