aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/bun.lockbbin153669 -> 157381 bytes
-rw-r--r--test/cli/run/require-cache-bug-5188.js21
-rw-r--r--test/cli/run/require-cache.test.ts (renamed from test/cli/run/require-cache.test.js)12
-rw-r--r--test/package.json3
4 files changed, 35 insertions, 1 deletions
diff --git a/test/bun.lockb b/test/bun.lockb
index f212bb6c5..059054600 100755
--- a/test/bun.lockb
+++ b/test/bun.lockb
Binary files differ
diff --git a/test/cli/run/require-cache-bug-5188.js b/test/cli/run/require-cache-bug-5188.js
new file mode 100644
index 000000000..cb9bd2099
--- /dev/null
+++ b/test/cli/run/require-cache-bug-5188.js
@@ -0,0 +1,21 @@
+const { strictEqual, ok } = require("assert");
+
+Loader.registry.set("bad", { evaluated: false });
+strictEqual(require.cache.bad, undefined);
+ok(!Object.hasOwn(require.cache, "bad"));
+ok(!Object.getOwnPropertyNames(require.cache).includes("bad"));
+
+// hard to simplify this test case, but importing this would cause require.cache.extract to be set
+require("msgpackr-extract");
+
+strictEqual(require.cache["extract"], undefined);
+ok(!Object.hasOwnProperty.call(require.cache, "extract"));
+ok(!Object.getOwnPropertyNames(require.cache).includes("extract"));
+
+for (const key of Object.keys(require.cache)) {
+ if (!require.cache[key]) {
+ throw new Error("require.cache has an undefined value that was in it's keys");
+ }
+}
+
+console.log("--pass--");
diff --git a/test/cli/run/require-cache.test.js b/test/cli/run/require-cache.test.ts
index e20470f9d..ed8e5ea38 100644
--- a/test/cli/run/require-cache.test.js
+++ b/test/cli/run/require-cache.test.ts
@@ -13,3 +13,15 @@ test("require.cache", () => {
expect(stdout.toString().trim().endsWith("--pass--")).toBe(true);
expect(exitCode).toBe(0);
});
+
+// https://github.com/oven-sh/bun/issues/5188
+test("require.cache does not include unevaluated modules", () => {
+ const { stdout, exitCode } = Bun.spawnSync({
+ cmd: [bunExe(), "run", join(import.meta.dir, "require-cache-bug-5188.js")],
+ env: bunEnv,
+ stderr: "inherit",
+ });
+
+ expect(stdout.toString().trim().endsWith("--pass--")).toBe(true);
+ expect(exitCode).toBe(0);
+});
diff --git a/test/package.json b/test/package.json
index 4d7cd6606..58e66833f 100644
--- a/test/package.json
+++ b/test/package.json
@@ -9,6 +9,7 @@
},
"dependencies": {
"@prisma/client": "5.1.1",
+ "@resvg/resvg-js": "2.4.1",
"@swc/core": "1.3.38",
"body-parser": "1.20.2",
"comlink": "4.4.1",
@@ -20,12 +21,12 @@
"iconv-lite": "0.6.3",
"jest-extended": "4.0.0",
"lodash": "4.17.21",
+ "msgpackr-extract": "3.0.2",
"nodemailer": "6.9.3",
"pg": "8.11.1",
"pg-connection-string": "2.6.1",
"postgres": "3.3.5",
"prisma": "5.1.1",
- "@resvg/resvg-js": "2.4.1",
"socket.io": "4.7.1",
"socket.io-client": "4.7.1",
"supertest": "6.3.3",