From 97ba50e0006b0eab9799cff50f2bc43d8616caae Mon Sep 17 00:00:00 2001 From: Knut Wannheden Date: Tue, 24 Sep 2024 15:06:49 +0200 Subject: [PATCH] Align with `rewriteRun()` API --- openrewrite/test/javascript/parser.test.ts | 48 +++++++++++++--------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/openrewrite/test/javascript/parser.test.ts b/openrewrite/test/javascript/parser.test.ts index 79bee284..919caca6 100644 --- a/openrewrite/test/javascript/parser.test.ts +++ b/openrewrite/test/javascript/parser.test.ts @@ -24,40 +24,48 @@ describe('Parser API', () => { }); }); +type SourceSpec = () => void; + describe('LST mapping', () => { const parser = JavaScriptParser.builder().build(); test('parseInputs', () => { - rewriteRun(() => { - const sourceFile = javaScript('1'); - expect(sourceFile).toBeDefined(); - expect(sourceFile.statements).toHaveLength(1); - expect(sourceFile.statements[0]).toBeInstanceOf(JS.ExpressionStatement); - }); + rewriteRun( + javaScript('1', (sourceFile) => { + expect(sourceFile).toBeDefined(); + expect(sourceFile.statements).toHaveLength(1); + expect(sourceFile.statements[0]).toBeInstanceOf(JS.ExpressionStatement); + })); }); test('parseStrings', () => { - rewriteRun(() => { - //language=typescript - const sourceFile = javaScript(` + rewriteRun( + javaScript( + //language=javascript + ` const c = 1; /* c1*/ /*c2 */ const d = 1; - `); - expect(sourceFile).toBeDefined(); - expect(sourceFile.statements).toHaveLength(2); - sourceFile.statements.forEach(statement => { - expect(statement).toBeInstanceOf(J.Unknown); + `, (cu) => { + expect(cu).toBeDefined(); + expect(cu.statements).toHaveLength(2); + cu.statements.forEach(statement => { + expect(statement).toBeInstanceOf(J.Unknown); + }) }) - }); + ); }); - function rewriteRun(runnable: () => void) { - runnable(); + function rewriteRun(...sourceSpecs: SourceSpec[]) { + sourceSpecs.forEach(sourceSpec => sourceSpec()); } - function javaScript(source: string): JS.CompilationUnit { - const [sourceFile] = parser.parseStrings(dedent(source)) as Iterable; - return sourceFile; + function javaScript(before: string, spec?: (sourceFile: JS.CompilationUnit) => void): SourceSpec { + return () => { + const [sourceFile] = parser.parseStrings(dedent(before)) as Iterable; + if (spec) { + spec(sourceFile); + } + }; } });