[eslint] Add test for component syntax
Lauren Tan committed
Nov 3, 2023 at 15:22 UTC
a030d05d95db4c919c36e8f5ecfff7b6d6cefac2
2 files changed
+15
-2
compiler/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts
+14
-2
@@ -6,7 +6,6 @@
6
*/
7
8
import { RuleTester as ESLintTester } from "eslint";
9
-import * as HermesEslintParser from "hermes-eslint";
9
import ReactForgetDiagnostics from "../src/rules/ReactForgetDiagnostics";
10
11
/**
@@ -38,6 +37,18 @@ const tests: ForgetTestCases = {
37
}
38
`,
39
},
40
+ {
41
+ name: "Basic example with component syntax",
42
+ code: normalizeIndent`
43
+ export default component HelloWorld(
44
+ text: string = 'Hello!',
45
+ onClick: () => void,
46
+ ) {
47
+ 'use forget';
48
+ return <div onClick={onClick}>{text}</div>;
49
+ }
50
+ `,
51
+ },
52
{
53
name: "Unsupported syntax",
54
code: normalizeIndent`
@@ -121,10 +132,11 @@ const tests: ForgetTestCases = {
132
};
133
134
const eslintTester = new ESLintTester({
124
- parser: HermesEslintParser,
135
+ parser: require.resolve("hermes-eslint"),
136
parserOptions: {
137
ecmaVersion: 2015,
138
sourceType: "module",
139
+ enableExperimentalComponentSyntax: true,
140
},
141
});
142
eslintTester.run("react-forget-diagnostics", ReactForgetDiagnostics, tests);
compiler/packages/eslint-plugin-react-forget/src/rules/ReactForgetDiagnostics.ts
+1
@@ -83,6 +83,7 @@ const rule: Rule.RuleModule = {
83
84
const babelAST = HermesParser.parse(sourceCode, {
85
babel: true,
86
+ enableExperimentalComponentSyntax: true,
87
sourceFilename: filename,
88
sourceType: "module",
89
});