summaryrefslogtreecommitdiff
path: root/std/node/module_test.ts
diff options
context:
space:
mode:
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);
+});