From b8fa3fd5e7dd906e5616bf2ab8ad6df3f74f244d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 11 Mar 2020 21:54:53 +0100 Subject: move compiler API tests to integration tests (#4319) --- cli/js/tests/compiler_api_test.ts | 153 -------------------------------------- cli/js/tests/unit_tests.ts | 1 - cli/tests/compiler_api_test.out | 16 ++++ cli/tests/compiler_api_test.ts | 152 +++++++++++++++++++++++++++++++++++++ cli/tests/integration_tests.rs | 7 +- cli/tests/workers_test.ts | 2 - 6 files changed, 174 insertions(+), 157 deletions(-) delete mode 100644 cli/js/tests/compiler_api_test.ts create mode 100644 cli/tests/compiler_api_test.out create mode 100644 cli/tests/compiler_api_test.ts (limited to 'cli') diff --git a/cli/js/tests/compiler_api_test.ts b/cli/js/tests/compiler_api_test.ts deleted file mode 100644 index 3b0449f9a..000000000 --- a/cli/js/tests/compiler_api_test.ts +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. - -import { assert, assertEquals, unitTest } from "./test_util.ts"; - -const { compile, transpileOnly, bundle } = Deno; - -unitTest(async function compilerApiCompileSources() { - const [diagnostics, actual] = await compile("/foo.ts", { - "/foo.ts": `import * as bar from "./bar.ts";\n\nconsole.log(bar);\n`, - "/bar.ts": `export const bar = "bar";\n` - }); - assert(diagnostics == null); - assert(actual); - assertEquals(Object.keys(actual), [ - "/bar.js.map", - "/bar.js", - "/foo.js.map", - "/foo.js" - ]); -}); - -unitTest(async function compilerApiCompileNoSources() { - const [diagnostics, actual] = await compile("./cli/tests/subdir/mod1.ts"); - assert(diagnostics == null); - assert(actual); - const keys = Object.keys(actual); - assertEquals(keys.length, 6); - assert(keys[0].endsWith("print_hello.js.map")); - assert(keys[1].endsWith("print_hello.js")); -}); - -unitTest(async function compilerApiCompileOptions() { - const [diagnostics, actual] = await compile( - "/foo.ts", - { - "/foo.ts": `export const foo = "foo";` - }, - { - module: "amd", - sourceMap: false - } - ); - assert(diagnostics == null); - assert(actual); - assertEquals(Object.keys(actual), ["/foo.js"]); - assert(actual["/foo.js"].startsWith("define(")); -}); - -unitTest(async function compilerApiCompileLib() { - const [diagnostics, actual] = await compile( - "/foo.ts", - { - "/foo.ts": `console.log(document.getElementById("foo")); - console.log(Deno.args);` - }, - { - lib: ["dom", "es2018", "deno.ns"] - } - ); - assert(diagnostics == null); - assert(actual); - assertEquals(Object.keys(actual), ["/foo.js.map", "/foo.js"]); -}); - -unitTest(async function compilerApiCompileTypes() { - const [diagnostics, actual] = await compile( - "/foo.ts", - { - "/foo.ts": `console.log(Foo.bar);` - }, - { - types: ["./cli/tests/subdir/foo_types.d.ts"] - } - ); - assert(diagnostics == null); - assert(actual); - assertEquals(Object.keys(actual), ["/foo.js.map", "/foo.js"]); -}); - -unitTest(async function transpileOnlyApi() { - const actual = await transpileOnly({ - "foo.ts": `export enum Foo { Foo, Bar, Baz };\n` - }); - assert(actual); - assertEquals(Object.keys(actual), ["foo.ts"]); - assert(actual["foo.ts"].source.startsWith("export var Foo;")); - assert(actual["foo.ts"].map); -}); - -unitTest(async function transpileOnlyApiConfig() { - const actual = await transpileOnly( - { - "foo.ts": `export enum Foo { Foo, Bar, Baz };\n` - }, - { - sourceMap: false, - module: "amd" - } - ); - assert(actual); - assertEquals(Object.keys(actual), ["foo.ts"]); - assert(actual["foo.ts"].source.startsWith("define(")); - assert(actual["foo.ts"].map == null); -}); - -unitTest(async function bundleApiSources() { - const [diagnostics, actual] = await bundle("/foo.ts", { - "/foo.ts": `export * from "./bar.ts";\n`, - "/bar.ts": `export const bar = "bar";\n` - }); - assert(diagnostics == null); - assert(actual.includes(`__instantiate("foo")`)); - assert(actual.includes(`__exp["bar"]`)); -}); - -unitTest(async function bundleApiNoSources() { - const [diagnostics, actual] = await bundle("./cli/tests/subdir/mod1.ts"); - assert(diagnostics == null); - assert(actual.includes(`__instantiate("mod1")`)); - assert(actual.includes(`__exp["printHello3"]`)); -}); - -unitTest(async function bundleApiConfig() { - const [diagnostics, actual] = await bundle( - "/foo.ts", - { - "/foo.ts": `// random comment\nexport * from "./bar.ts";\n`, - "/bar.ts": `export const bar = "bar";\n` - }, - { - removeComments: true - } - ); - assert(diagnostics == null); - assert(!actual.includes(`random`)); -}); - -unitTest(async function bundleApiJsModules() { - const [diagnostics, actual] = await bundle("/foo.js", { - "/foo.js": `export * from "./bar.js";\n`, - "/bar.js": `export const bar = "bar";\n` - }); - assert(diagnostics == null); - assert(actual.includes(`System.register("bar",`)); -}); - -unitTest(async function diagnosticsTest() { - const [diagnostics] = await compile("/foo.ts", { - "/foo.ts": `document.getElementById("foo");` - }); - assert(Array.isArray(diagnostics)); - assert(diagnostics.length === 1); -}); diff --git a/cli/js/tests/unit_tests.ts b/cli/js/tests/unit_tests.ts index 9ae724d53..9c80859d6 100644 --- a/cli/js/tests/unit_tests.ts +++ b/cli/js/tests/unit_tests.ts @@ -9,7 +9,6 @@ import "./buffer_test.ts"; import "./build_test.ts"; import "./chmod_test.ts"; import "./chown_test.ts"; -import "./compiler_api_test.ts"; import "./console_test.ts"; import "./copy_file_test.ts"; import "./custom_event_test.ts"; diff --git a/cli/tests/compiler_api_test.out b/cli/tests/compiler_api_test.out new file mode 100644 index 000000000..23f44b092 --- /dev/null +++ b/cli/tests/compiler_api_test.out @@ -0,0 +1,16 @@ +running 12 tests +OK compilerApiCompileSources [WILDCARD] +OK compilerApiCompileNoSources [WILDCARD] +OK compilerApiCompileOptions [WILDCARD] +OK compilerApiCompileLib [WILDCARD] +OK compilerApiCompileTypes [WILDCARD] +OK transpileOnlyApi [WILDCARD] +OK transpileOnlyApiConfig [WILDCARD] +OK bundleApiSources [WILDCARD] +OK bundleApiNoSources [WILDCARD] +OK bundleApiConfig [WILDCARD] +OK bundleApiJsModules [WILDCARD] +OK diagnosticsTest [WILDCARD] + +test result: OK 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [WILDCARD] + diff --git a/cli/tests/compiler_api_test.ts b/cli/tests/compiler_api_test.ts new file mode 100644 index 000000000..540ac6680 --- /dev/null +++ b/cli/tests/compiler_api_test.ts @@ -0,0 +1,152 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +import { assert, assertEquals } from "../../std/testing/asserts.ts"; +const { compile, transpileOnly, bundle, test } = Deno; + +test(async function compilerApiCompileSources() { + const [diagnostics, actual] = await compile("/foo.ts", { + "/foo.ts": `import * as bar from "./bar.ts";\n\nconsole.log(bar);\n`, + "/bar.ts": `export const bar = "bar";\n` + }); + assert(diagnostics == null); + assert(actual); + assertEquals(Object.keys(actual), [ + "/bar.js.map", + "/bar.js", + "/foo.js.map", + "/foo.js" + ]); +}); + +test(async function compilerApiCompileNoSources() { + const [diagnostics, actual] = await compile("./subdir/mod1.ts"); + assert(diagnostics == null); + assert(actual); + const keys = Object.keys(actual); + assertEquals(keys.length, 6); + assert(keys[0].endsWith("print_hello.js.map")); + assert(keys[1].endsWith("print_hello.js")); +}); + +test(async function compilerApiCompileOptions() { + const [diagnostics, actual] = await compile( + "/foo.ts", + { + "/foo.ts": `export const foo = "foo";` + }, + { + module: "amd", + sourceMap: false + } + ); + assert(diagnostics == null); + assert(actual); + assertEquals(Object.keys(actual), ["/foo.js"]); + assert(actual["/foo.js"].startsWith("define(")); +}); + +test(async function compilerApiCompileLib() { + const [diagnostics, actual] = await compile( + "/foo.ts", + { + "/foo.ts": `console.log(document.getElementById("foo")); + console.log(Deno.args);` + }, + { + lib: ["dom", "es2018", "deno.ns"] + } + ); + assert(diagnostics == null); + assert(actual); + assertEquals(Object.keys(actual), ["/foo.js.map", "/foo.js"]); +}); + +test(async function compilerApiCompileTypes() { + const [diagnostics, actual] = await compile( + "/foo.ts", + { + "/foo.ts": `console.log(Foo.bar);` + }, + { + types: ["./subdir/foo_types.d.ts"] + } + ); + assert(diagnostics == null); + assert(actual); + assertEquals(Object.keys(actual), ["/foo.js.map", "/foo.js"]); +}); + +test(async function transpileOnlyApi() { + const actual = await transpileOnly({ + "foo.ts": `export enum Foo { Foo, Bar, Baz };\n` + }); + assert(actual); + assertEquals(Object.keys(actual), ["foo.ts"]); + assert(actual["foo.ts"].source.startsWith("export var Foo;")); + assert(actual["foo.ts"].map); +}); + +test(async function transpileOnlyApiConfig() { + const actual = await transpileOnly( + { + "foo.ts": `export enum Foo { Foo, Bar, Baz };\n` + }, + { + sourceMap: false, + module: "amd" + } + ); + assert(actual); + assertEquals(Object.keys(actual), ["foo.ts"]); + assert(actual["foo.ts"].source.startsWith("define(")); + assert(actual["foo.ts"].map == null); +}); + +test(async function bundleApiSources() { + const [diagnostics, actual] = await bundle("/foo.ts", { + "/foo.ts": `export * from "./bar.ts";\n`, + "/bar.ts": `export const bar = "bar";\n` + }); + assert(diagnostics == null); + assert(actual.includes(`__instantiate("foo")`)); + assert(actual.includes(`__exp["bar"]`)); +}); + +test(async function bundleApiNoSources() { + const [diagnostics, actual] = await bundle("./subdir/mod1.ts"); + assert(diagnostics == null); + assert(actual.includes(`__instantiate("mod1")`)); + assert(actual.includes(`__exp["printHello3"]`)); +}); + +test(async function bundleApiConfig() { + const [diagnostics, actual] = await bundle( + "/foo.ts", + { + "/foo.ts": `// random comment\nexport * from "./bar.ts";\n`, + "/bar.ts": `export const bar = "bar";\n` + }, + { + removeComments: true + } + ); + assert(diagnostics == null); + assert(!actual.includes(`random`)); +}); + +test(async function bundleApiJsModules() { + const [diagnostics, actual] = await bundle("/foo.js", { + "/foo.js": `export * from "./bar.js";\n`, + "/bar.js": `export const bar = "bar";\n` + }); + assert(diagnostics == null); + assert(actual.includes(`System.register("bar",`)); +}); + +test(async function diagnosticsTest() { + const [diagnostics] = await compile("/foo.ts", { + "/foo.ts": `document.getElementById("foo");` + }); + assert(Array.isArray(diagnostics)); + assert(diagnostics.length === 1); +}); diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs index 1e8274294..d5a3fb8c8 100644 --- a/cli/tests/integration_tests.rs +++ b/cli/tests/integration_tests.rs @@ -865,11 +865,16 @@ itest!(_026_redirect_javascript { }); itest!(workers { - args: "run --reload --allow-net workers_test.ts", + args: "test --reload --allow-net workers_test.ts", http_server: true, output: "workers_test.out", }); +itest!(compiler_api { + args: "test --reload compiler_api_test.ts", + output: "compiler_api_test.out", +}); + itest!(_027_redirect_typescript { args: "run --reload 027_redirect_typescript.ts", output: "027_redirect_typescript.ts.out", diff --git a/cli/tests/workers_test.ts b/cli/tests/workers_test.ts index 44e7a1776..370b3cd1a 100644 --- a/cli/tests/workers_test.ts +++ b/cli/tests/workers_test.ts @@ -111,5 +111,3 @@ Deno.test(async function workerCanUseFetch(): Promise { await promise; }); - -await Deno.runTests(); -- cgit v1.2.3