summaryrefslogtreecommitdiff
path: root/std/node/module_test.ts
diff options
context:
space:
mode:
authorKevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com>2019-11-19 13:44:59 -0800
committerRy Dahl <ry@tinyclouds.org>2019-11-19 16:44:59 -0500
commit6708fcc38688b80d4e052f755f02efb09a2071d1 (patch)
tree4ddf5ec5cb7d467f017c36fa0621e84f4d72f4aa /std/node/module_test.ts
parent2ac107f54848e44144c0ee2bdbdfb40732e20b2b (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.ts44
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);
+});