diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-10-10 05:31:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-10 05:31:23 -0400 |
commit | e7562eed8c816cd0d97aab6b818d7c8453dbaa2b (patch) | |
tree | c5a9f536e79d2c8d2d02897511a9138acaf35394 /std/bundle/test.ts | |
parent | 3882c9d19a641e0c919f1350d87c6d7ee280cf78 (diff) | |
parent | 93f7f00c956c14620ef031626f124b57397ca867 (diff) |
Merge deno_std in main repo (#3091)
The history of deno_std is persevered but rewritten to update links to issues and PRs
Fixes denoland/deno_std#603
Diffstat (limited to 'std/bundle/test.ts')
m--------- | std | 0 | ||||
-rw-r--r-- | std/bundle/test.ts | 116 |
2 files changed, 116 insertions, 0 deletions
diff --git a/std b/std deleted file mode 160000 -Subproject 43aafbf33285753e7b42230f0eb7969b300f71c diff --git a/std/bundle/test.ts b/std/bundle/test.ts new file mode 100644 index 000000000..504e449a6 --- /dev/null +++ b/std/bundle/test.ts @@ -0,0 +1,116 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. + +import { test } from "../testing/mod.ts"; +import { + assert, + AssertionError, + assertEquals, + assertThrowsAsync +} from "../testing/asserts.ts"; +import { instantiate, load, ModuleMetaData } from "./utils.ts"; + +/* eslint-disable @typescript-eslint/no-namespace */ +declare global { + namespace globalThis { + // eslint-disable-next-line no-var + var __results: [string, string] | undefined; + } +} +/* eslint-disable max-len */ +/* eslint-enable @typescript-eslint/no-namespace */ +/* +const fixture = ` +define("data", [], { "baz": "qat" }); +define("modB", ["require", "exports", "data"], function(require, exports, data) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.foo = "bar"; + exports.baz = data.baz; +}); +define("modA", ["require", "exports", "modB"], function(require, exports, modB) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + globalThis.__results = [modB.foo, modB.baz]; +}); +`; +*/ +/* eslint-enable max-len */ + +const fixtureQueue = ["data", "modB", "modA"]; +const fixtureModules = new Map<string, ModuleMetaData>(); +fixtureModules.set("data", { + dependencies: [], + factory: { + baz: "qat" + }, + exports: {} +}); +fixtureModules.set("modB", { + dependencies: ["require", "exports", "data"], + factory(_require, exports, data): void { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.foo = "bar"; + exports.baz = data.baz; + }, + exports: {} +}); +fixtureModules.set("modA", { + dependencies: ["require", "exports", "modB"], + factory(_require, exports, modB): void { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + globalThis.__results = [modB.foo, modB.baz]; + }, + exports: {} +}); + +test(async function loadBundle(): Promise<void> { + const result = await load(["", "./bundle/testdata/bundle.js", "--foo"]); + assert(result != null); + assert( + result.includes( + `define("subdir/print_hello", ["require", "exports"], function(` + ) + ); +}); + +test(async function loadBadArgs(): Promise<void> { + await assertThrowsAsync( + async (): Promise<void> => { + await load(["bundle/test.ts"]); + }, + AssertionError, + "Expected at least two arguments." + ); +}); + +test(async function loadMissingBundle(): Promise<void> { + await assertThrowsAsync( + async (): Promise<void> => { + await load([".", "bad_bundle.js"]); + }, + AssertionError, + `Expected "bad_bundle.js" to exist.` + ); +}); + +/* TODO re-enable test +test(async function evaluateBundle(): Promise<void> { + assert(globalThis.define == null, "Expected 'define' to be undefined"); + const [queue, modules] = evaluate(fixture); + assert(globalThis.define == null, "Expected 'define' to be undefined"); + assertEquals(queue, ["data", "modB", "modA"]); + assert(modules.has("modA")); + assert(modules.has("modB")); + assert(modules.has("data")); + assertStrictEq(modules.size, 3); +}); +*/ + +test(async function instantiateBundle(): Promise<void> { + assert(globalThis.__results == null); + instantiate(fixtureQueue, fixtureModules); + assertEquals(globalThis.__results, ["bar", "qat"]); + delete globalThis.__results; +}); |