diff --git a/src/test/java/com/caoccao/javet/swc4j/TestSwc4j.java b/src/test/java/com/caoccao/javet/swc4j/TestSwc4j.java index 03289c2d..12ad85fa 100644 --- a/src/test/java/com/caoccao/javet/swc4j/TestSwc4j.java +++ b/src/test/java/com/caoccao/javet/swc4j/TestSwc4j.java @@ -313,6 +313,29 @@ public void testTranspileJsxWithDefaultOptions() throws Swc4jCoreException { assertNull(output.getSourceMap()); } + @Test + public void testTranspileTypeScriptWithCaptureTokens() throws Swc4jCoreException { + Swc4jTranspileOptions options = new Swc4jTranspileOptions() + .setMediaType(Swc4jMediaType.TypeScript) + .setCaptureTokens(true); + String code = "function add加法(a變量:number, b變量:number) { return a變量+b變量; }"; + Swc4jTranspileOutput output = swc4j.transpile(code, options); + assertNotNull(output); + assertTrue(output.isModule()); + assertFalse(output.isScript()); + List tokens = output.getTokens(); + assertNotNull(tokens); + assertEquals(18, tokens.size()); + assertEquals(Swc4jAstTokenType.Function, tokens.get(0).getType()); + assertTrue(tokens.get(0).isLineBreakAhead()); + assertEquals(Swc4jAstTokenType.Return, tokens.get(12).getType()); + assertFalse(tokens.get(12).isLineBreakAhead()); + tokens.forEach(token -> + assertEquals( + code.substring(token.getStartPosition(), token.getEndPosition()), + token.getText())); + } + @Test public void testTranspileTypeScriptWithInlineSourceMap() throws Swc4jCoreException { String code = "function add(a:number, b:number) { return a+b; }";