UNPKG

eslint-plugin-hooks-logic-order

Version:

Allows component-code's logical blocks keep in defined order

286 lines (254 loc) 7.58 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const eslint_1 = require("eslint"); const hooks_on_top_1 = __importDefault(require("./hooks-on-top")); const tester = new eslint_1.RuleTester({ parser: require.resolve("@typescript-eslint/parser"), parserOptions: { ecmaVersion: 2015, jsx: true }, }); tester.run("hooks-on-top", hooks_on_top_1.default, { valid: [ { filename: "valid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const dateNow = 123; useEffect(() => { // }, []); const onChangeTab = (type) => { setReportsType(type); }; return 1; }; `, }, { filename: "valid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { return 1; }; `, }, { filename: "valid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); return 1; }; `, }, { filename: "valid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const dateNow = 123; return 1; }; `, }, { filename: "valid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const dateNow = 123; useEffect(() => { // }, []); return 1; }; `, }, ], invalid: [ { filename: "invalid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const dateNow = 123; useEffect(() => { // }, []); const onChangeTab = (type) => { setReportsType(type); }; const dateNow = 123; return 1; }; `, errors: [{ message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }], }, { filename: "invalid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const dateNow = 123; const onChangeTab = (type) => { setReportsType(type); }; useEffect(() => { // }, []); return 1; }; `, errors: [{ message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }], }, { filename: "invalid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const dateNow = 123; const onChangeTab = (type) => { setReportsType(type); }; return 2; useEffect(() => { // }, []); return 1; }; `, errors: [{ message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }], }, { filename: "invalid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const dateNow = 123; const onChangeTab = (type) => { setReportsType(type); }; const dateNow = 123; useEffect(() => { // }, []); const dateNow = 123; return 1; }; `, errors: [{ message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }], }, { filename: "invalid.tsx", options: [ { order: ["hook2var", "var", "hook", "func", "others"], }, ], code: ` const DailyReports = () => { const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); const dateNow = 123; const onChangeTab = (type) => { setReportsType(type); }; const dateNow = 123; useEffect(() => { // }, []); const dateNow = 123; const stores = useStore(); const stores = useStore(); const stores = useStore(); const stores = useStore(); useEffect(() => { // }, []); useEffect(() => { // }, []); useEffect(() => { // }, []); useEffect(() => { // }, []); return 1; }; `, errors: [ { message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }, { message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }, { message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }, { message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }, { message: `Wrong logic block order in component! Check your .eslintrc rules for correct block order` }, ], }, ], }); //# sourceMappingURL=hooks-on-top.test.js.map