diff options
Diffstat (limited to 'js/runner_test.ts')
-rw-r--r-- | js/runner_test.ts | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/js/runner_test.ts b/js/runner_test.ts deleted file mode 100644 index 5444f31f9..000000000 --- a/js/runner_test.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { test, assert, assertEqual } from "./test_util.ts"; -import * as deno from "deno"; - -// tslint:disable-next-line:no-any -const Runner = (deno as any)._runner.Runner; - -let mockGetOutputStack: string[] = []; -let mockGetFilenameStack: Array<[string, string]> = []; - -// tslint:disable:max-line-length -const mockOutput = { - "/root/project/foo/bar.ts": `define(["require", "exports"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.foo = "bar"; -}); -//# sourceMappingURL=bar.js.map -//# sourceURL=/root/project/foo/bar.ts`, - "/root/project/foo/baz.ts": `define(["require", "exports", "./qat.ts"], function (require, exports, qat) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.foo = qat.foo; -}); -//# sourceMappingURL=baz.js.map -//# sourceURL=/root/project/foo/baz.ts`, - "/root/project/foo/qat.ts": `define(["require", "exports"], function (require, exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.foo = "qat"; -}); -//# sourceMappingURL=qat.js.map -//# sourceURL=/root/project/foo/qat.ts`, - "/root/project/foo/config.json": `define([], function () { - return JSON.parse('{"foo":{"bar": true,"baz": ["qat", 1]}}'); -}); -//# sourceURL=/root/project/foo/config.json`, - "/circular/modA.ts": `define(["require", "exports", "./modB.ts"], function (require, exports, modB) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.foo = modB.foo; -}); -//# sourceMappingURL=modA.js.map -//# sourceURL=/circular/modA.ts`, - "/circular/modB.ts": `define(["require", "exports", "./modA.ts"], function (require, exports, modA) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - if (modA && typeof modA === "object") { - modA; - } else { - throw new Error("Mod A is empty!"); - } - exports.foo = "bar"; -}); -//# sourceMappingURL=modB.js.map -//# sourceURL=/circular/modB.ts` -}; -// tslint:enable - -const mockFilenames = { - "/root/project": { - "foo/bar.ts": "/root/project/foo/bar.ts", - "foo/baz.ts": "/root/project/foo/baz.ts", - "foo/config.json": "/root/project/foo/config.json" - }, - "/root/project/foo/baz.ts": { - "./qat.ts": "/root/project/foo/qat.ts" - }, - "/circular": { - "modA.ts": "/circular/modA.ts" - }, - "/circular/modA.ts": { - "./modB.ts": "/circular/modB.ts" - }, - "/circular/modB.ts": { - "./modA.ts": "/circular/modA.ts" - } -}; - -const mockCodeProvider = { - getOutput(filename: string) { - mockGetOutputStack.push(filename); - if (filename in mockOutput) { - return mockOutput[filename]; - } - throw new Error("Module not found."); - }, - getFilename(moduleSpecifier: string, containingFile: string) { - mockGetFilenameStack.push([moduleSpecifier, containingFile]); - if ( - containingFile in mockFilenames && - moduleSpecifier in mockFilenames[containingFile] - ) { - return mockFilenames[containingFile][moduleSpecifier]; - } - } -}; - -function setup() { - mockGetOutputStack = []; - mockGetFilenameStack = []; - return new Runner(mockCodeProvider); -} - -test(function runnerConstruction() { - const runner = setup(); - assert(runner); -}); - -test(function runnerRun() { - const runner = setup(); - const result = runner.run("foo/bar.ts", "/root/project"); - assertEqual(result, { foo: "bar" }); - assertEqual(mockGetFilenameStack, [["foo/bar.ts", "/root/project"]]); - assertEqual(mockGetOutputStack, ["/root/project/foo/bar.ts"]); -}); - -test(function runnerRunImports() { - const runner = setup(); - const result = runner.run("foo/baz.ts", "/root/project"); - assertEqual(result, { foo: "qat" }); - assertEqual(mockGetFilenameStack, [ - ["foo/baz.ts", "/root/project"], - ["./qat.ts", "/root/project/foo/baz.ts"] - ]); - assertEqual(mockGetOutputStack, [ - "/root/project/foo/baz.ts", - "/root/project/foo/qat.ts" - ]); -}); - -test(function runnerRunExportReturn() { - const runner = setup(); - const result = runner.run("foo/config.json", "/root/project"); - assertEqual(result, { foo: { bar: true, baz: ["qat", 1] } }); -}); - -test(function runnerCircularReference() { - const runner = setup(); - const result = runner.run("modA.ts", "/circular"); - assertEqual(result, { foo: "bar" }); -}); |