From a030d05d95db4c919c36e8f5ecfff7b6d6cefac2 Mon Sep 17 00:00:00 2001 From: Lauren Tan Date: Fri, 3 Nov 2023 15:22:52 -0400 Subject: [PATCH] [eslint] Add test for component syntax --- .../__tests__/ReactForgetDiagnostics-test.ts | 16 ++++++++++++++-- .../src/rules/ReactForgetDiagnostics.ts | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/compiler/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts b/compiler/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts index 1a5b44b93b..af89c76465 100644 --- a/compiler/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts +++ b/compiler/packages/eslint-plugin-react-forget/__tests__/ReactForgetDiagnostics-test.ts @@ -6,7 +6,6 @@ */ import { RuleTester as ESLintTester } from "eslint"; -import * as HermesEslintParser from "hermes-eslint"; import ReactForgetDiagnostics from "../src/rules/ReactForgetDiagnostics"; /** @@ -38,6 +37,18 @@ const tests: ForgetTestCases = { } `, }, + { + name: "Basic example with component syntax", + code: normalizeIndent` + export default component HelloWorld( + text: string = 'Hello!', + onClick: () => void, + ) { + 'use forget'; + return
{text}
; + } + `, + }, { name: "Unsupported syntax", code: normalizeIndent` @@ -121,10 +132,11 @@ const tests: ForgetTestCases = { }; const eslintTester = new ESLintTester({ - parser: HermesEslintParser, + parser: require.resolve("hermes-eslint"), parserOptions: { ecmaVersion: 2015, sourceType: "module", + enableExperimentalComponentSyntax: true, }, }); eslintTester.run("react-forget-diagnostics", ReactForgetDiagnostics, tests); diff --git a/compiler/packages/eslint-plugin-react-forget/src/rules/ReactForgetDiagnostics.ts b/compiler/packages/eslint-plugin-react-forget/src/rules/ReactForgetDiagnostics.ts index c045085a1a..a493da9e9a 100644 --- a/compiler/packages/eslint-plugin-react-forget/src/rules/ReactForgetDiagnostics.ts +++ b/compiler/packages/eslint-plugin-react-forget/src/rules/ReactForgetDiagnostics.ts @@ -83,6 +83,7 @@ const rule: Rule.RuleModule = { const babelAST = HermesParser.parse(sourceCode, { babel: true, + enableExperimentalComponentSyntax: true, sourceFilename: filename, sourceType: "module", });