aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-09-13 23:54:46 -0400
committerGravatar GitHub <noreply@github.com> 2023-09-13 20:54:46 -0700
commit503c80892980bd60dc2205a63832e52be6b4478f (patch)
tree1590ab45a5a030d26e9bc0445deac74f02246d89
parent0927624608e9a1b816383c16d58150ba249d3c7f (diff)
downloadbun-503c80892980bd60dc2205a63832e52be6b4478f.tar.gz
bun-503c80892980bd60dc2205a63832e52be6b4478f.tar.zst
bun-503c80892980bd60dc2205a63832e52be6b4478f.zip
test (#5244)
-rw-r--r--test/js/node/module/node-module-module.test.js13
-rw-r--r--test/js/node/module/resolveFilenameOverwrite-fixture.cjs1
-rw-r--r--test/js/node/module/resolveFilenameOverwrite.cjs14
3 files changed, 28 insertions, 0 deletions
diff --git a/test/js/node/module/node-module-module.test.js b/test/js/node/module/node-module-module.test.js
index 08955a7b7..e5e21c981 100644
--- a/test/js/node/module/node-module-module.test.js
+++ b/test/js/node/module/node-module-module.test.js
@@ -1,6 +1,8 @@
import { expect, test } from "bun:test";
+import { bunEnv, bunExe } from "harness";
import { _nodeModulePaths, builtinModules, isBuiltin, wrap } from "module";
import Module from "module";
+import path from "path";
test("builtinModules exists", () => {
expect(Array.isArray(builtinModules)).toBe(true);
@@ -57,3 +59,14 @@ test("Module.wrap", () => {
expect(mod.exports.foo).toBe(1);
expect(wrap()).toBe("(function (exports, require, module, __filename, __dirname) { undefined\n});");
});
+
+test("Overwriting _resolveFilename", () => {
+ const { stdout, exitCode } = Bun.spawnSync({
+ cmd: [bunExe(), "run", path.join(import.meta.dir, "resolveFilenameOverwrite.cjs")],
+ env: bunEnv,
+ stderr: "inherit",
+ });
+
+ expect(stdout.toString().trim().endsWith("--pass--")).toBe(true);
+ expect(exitCode).toBe(0);
+});
diff --git a/test/js/node/module/resolveFilenameOverwrite-fixture.cjs b/test/js/node/module/resolveFilenameOverwrite-fixture.cjs
new file mode 100644
index 000000000..adae3dd6e
--- /dev/null
+++ b/test/js/node/module/resolveFilenameOverwrite-fixture.cjs
@@ -0,0 +1 @@
+module.exports = "winner";
diff --git a/test/js/node/module/resolveFilenameOverwrite.cjs b/test/js/node/module/resolveFilenameOverwrite.cjs
new file mode 100644
index 000000000..e2d1327a7
--- /dev/null
+++ b/test/js/node/module/resolveFilenameOverwrite.cjs
@@ -0,0 +1,14 @@
+// This behavior is required for Next.js to work
+const eql = require("assert").strictEqual;
+const path = require("path");
+const Module = require("module");
+
+const original = Module._resolveFilename;
+Module._resolveFilename = str => {
+ eql(str.endsWith("💔"), true);
+ return path.join(__dirname, "./resolveFilenameOverwrite-fixture.cjs");
+};
+eql(require("overwriting _resolveFilename broke 💔"), "winner");
+Module._resolveFilename = original;
+
+console.log("--pass--");