Files
twenty/packages/eslint-plugin-twenty/src/tests/no-state-useref.spec.ts
gitstart-twenty 0c79217ba0 Add an ESLint rule to prevent the usage of useRef other than for HTML elements. (#2014)
* Add an ESLint rule to prevent the usage of useRef other than for HTML elements

Co-authored-by: v1b3m <vibenjamin6@gmail.com>

* Bump eslint version and rewrite rule

* Fix

---------

Co-authored-by: v1b3m <vibenjamin6@gmail.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
2023-10-14 11:32:46 +02:00

52 lines
1007 B
TypeScript

import { RuleTester } from "@typescript-eslint/rule-tester";
import noStateUseRefRule from "../rules/no-state-useref";
const ruleTester = new RuleTester({
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.json",
tsconfigRootDir: __dirname,
ecmaFeatures: {
jsx: true,
},
},
});
ruleTester.run("no-state-useref", noStateUseRefRule, {
valid: [
{
code: "const scrollableRef = useRef<HTMLDivElement>(null);",
},
{
code: "const ref = useRef<HTMLInputElement>(null);",
},
],
invalid: [
{
code: "const ref = useRef(null);",
errors: [
{
messageId: "noStateUseRef",
},
],
},
{
code: "const ref = useRef<Boolean>(null);",
errors: [
{
messageId: "noStateUseRef",
},
],
},
{
code: "const ref = useRef<string>('');",
errors: [
{
messageId: "noStateUseRef",
},
],
},
],
});