From 3a84c028b5c44e2c56292be3fbdcc423b6511aa3 Mon Sep 17 00:00:00 2001 From: Klaus Meinhardt Date: Mon, 2 Jul 2018 17:58:38 +0200 Subject: [PATCH] add tests --- src/testRunner/tsconfig.json | 3 ++- src/testRunner/unittests/factory.ts | 30 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/testRunner/unittests/factory.ts diff --git a/src/testRunner/tsconfig.json b/src/testRunner/tsconfig.json index 3943d4f4f85..b02f1a6c175 100644 --- a/src/testRunner/tsconfig.json +++ b/src/testRunner/tsconfig.json @@ -39,7 +39,7 @@ "unittests/extractTestHelpers.ts", "unittests/tsserverProjectSystem.ts", "unittests/typingsInstaller.ts", - + "unittests/asserts.ts", "unittests/base64.ts", "unittests/builder.ts", @@ -54,6 +54,7 @@ "unittests/extractConstants.ts", "unittests/extractFunctions.ts", "unittests/extractRanges.ts", + "unittests/factory.ts", "unittests/hostNewLineSupport.ts", "unittests/incrementalParser.ts", "unittests/initializeTSConfig.ts", diff --git a/src/testRunner/unittests/factory.ts b/src/testRunner/unittests/factory.ts new file mode 100644 index 00000000000..3fe2fc29f6e --- /dev/null +++ b/src/testRunner/unittests/factory.ts @@ -0,0 +1,30 @@ +namespace ts { + describe("FactoryAPI", () => { + describe("createExportAssignment", () => { + it("parenthesizes default export if necessary", () => { + function checkExpression(expression: Expression) { + const node = createExportAssignment( + /*decorators*/ undefined, + /*modifiers*/ undefined, + /*isExportEquals*/ false, + expression, + ); + assert.strictEqual(node.expression.kind, SyntaxKind.ParenthesizedExpression); + } + + const clazz = createClassExpression(/*modifiers*/ undefined, "C", /*typeParameters*/ undefined, /*heritageClauses*/ undefined, [ + ts.createProperty(/*decorators*/ undefined, [ts.createToken(ts.SyntaxKind.StaticKeyword)], "prop", /*questionOrExclamationToken*/ undefined, /*type*/ undefined, ts.createLiteral("1")), + ]); + checkExpression(clazz); + checkExpression(createPropertyAccess(clazz, "prop")); + + const func = createFunctionExpression(/*modifiers*/ undefined, /*asteriskToken*/ undefined, "fn", /*typeParameters*/ undefined, /*parameters*/ undefined, /*type*/ undefined, ts.createBlock([])); + checkExpression(func); + checkExpression(createCall(func, /*typeArguments*/ undefined, /*argumentsArray*/ undefined)); + + checkExpression(createBinary(createLiteral("a"), SyntaxKind.CommaToken, createLiteral("b"))); + checkExpression(createCommaList([createLiteral("a"), createLiteral("b")])); + }); + }); + }); +}