import { RuleTester } from "@typescript-eslint/rule-tester"; import effectComponentsRule from "../rules/effect-components"; const ruleTester = new RuleTester({ parser: "@typescript-eslint/parser", parserOptions: { project: "./tsconfig.json", tsconfigRootDir: __dirname, ecmaFeatures: { jsx: true, }, }, }); ruleTester.run("effect-components", effectComponentsRule, { valid: [ { code: `const TestComponentEffect = () => <>>;`, }, { code: `const TestComponent = () =>
;`, }, { code: `export const useUpdateEffect = () => null;`, }, { code: `export const useUpdateEffect = () => <>>;`, }, { code: `const TestComponent = () => <>>;`, }, { code: `const TestComponentEffect = () => null;`, }, { code: `const TestComponentEffect = () => { useEffect(() => {}, []); return null; }`, }, { code: `const TestComponentEffect = () => { useEffect(() => {}, []); return <>>; }`, }, { code: `const TestComponentEffect = () => { useEffect(() => {}, []); return <>>; }`, }, { code: `const TestComponentEffect = () => { useEffect(() => {}, []); return null; }`, }, ], invalid: [ { code: "const TestComponent = () => <>>;", output: "const TestComponentEffect = () => <>>;", errors: [ { messageId: "effectSuffix", }, ], }, { code: "const TestComponentEffect = () => <>>;", output: "const TestComponent = () => <>>;", errors: [ { messageId: "noEffectSuffix", }, ], }, ], });