diff options
author | Kevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com> | 2019-11-19 13:44:59 -0800 |
---|---|---|
committer | Ry Dahl <ry@tinyclouds.org> | 2019-11-19 16:44:59 -0500 |
commit | 6708fcc38688b80d4e052f755f02efb09a2071d1 (patch) | |
tree | 4ddf5ec5cb7d467f017c36fa0621e84f4d72f4aa /std/node/module_test.ts | |
parent | 2ac107f54848e44144c0ee2bdbdfb40732e20b2b (diff) |
std/node: add some Node.js polyfill to require() (#3382)
Diffstat (limited to 'std/node/module_test.ts')
-rw-r--r-- | std/node/module_test.ts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/std/node/module_test.ts b/std/node/module_test.ts new file mode 100644 index 000000000..91744d94d --- /dev/null +++ b/std/node/module_test.ts @@ -0,0 +1,44 @@ +import { test } from "../testing/mod.ts"; +import { assertEquals, assert } from "../testing/asserts.ts"; +import { createRequire } from "./module.ts"; + +// TS compiler would try to resolve if function named "require" +// Thus suffixing it with require_ to fix this... +const require_ = createRequire(import.meta.url); + +test(function requireSuccess() { + // Relative to import.meta.url + const result = require_("./tests/cjs/cjs_a.js"); + assert("helloA" in result); + assert("helloB" in result); + assert("C" in result); + assert("leftPad" in result); + assertEquals(result.helloA(), "A"); + assertEquals(result.helloB(), "B"); + assertEquals(result.C, "C"); + assertEquals(result.leftPad("pad", 4), " pad"); +}); + +test(function requireCycle() { + const resultA = require_("./tests/cjs/cjs_cycle_a"); + const resultB = require_("./tests/cjs/cjs_cycle_b"); + assert(resultA); + assert(resultB); +}); + +test(function requireBuiltin() { + const fs = require_("fs"); + assert("readFileSync" in fs); + const { readFileSync, isNull, extname } = require_("./tests/cjs/cjs_builtin"); + assertEquals( + readFileSync("./node/testdata/hello.txt", { encoding: "utf8" }), + "hello world" + ); + assert(isNull(null)); + assertEquals(extname("index.html"), ".html"); +}); + +test(function requireIndexJS() { + const { isIndex } = require_("./tests/cjs"); + assert(isIndex); +}); |