aboutsummaryrefslogtreecommitdiff
path: root/test/js/web/timers/setImmediate.test.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-11 19:14:34 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-11 19:14:34 -0700
commitcbb88672f217a90db1aa1eb29cd92d5d9035b22b (patch)
tree43a00501f3cde495967e116f0b660777051551f8 /test/js/web/timers/setImmediate.test.js
parent1f900cff453700b19bca2acadfe26da4468c1282 (diff)
parent34b0e7a2bbd8bf8097341cdb0075d0908283e834 (diff)
downloadbun-cbb88672f217a90db1aa1eb29cd92d5d9035b22b.tar.gz
bun-cbb88672f217a90db1aa1eb29cd92d5d9035b22b.tar.zst
bun-cbb88672f217a90db1aa1eb29cd92d5d9035b22b.zip
Merge branch 'main' into jarred/esm-conditionsjarred/esm-conditions
Diffstat (limited to 'test/js/web/timers/setImmediate.test.js')
-rw-r--r--test/js/web/timers/setImmediate.test.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/js/web/timers/setImmediate.test.js b/test/js/web/timers/setImmediate.test.js
index 9cd6fa1c9..d00224e0f 100644
--- a/test/js/web/timers/setImmediate.test.js
+++ b/test/js/web/timers/setImmediate.test.js
@@ -1,4 +1,6 @@
import { it, expect } from "bun:test";
+import { bunExe, bunEnv } from "harness";
+import path from "path";
it("setImmediate", async () => {
var lastID = -1;
@@ -45,3 +47,28 @@ it("clearImmediate", async () => {
});
expect(called).toBe(false);
});
+
+it("setImmediate should not keep the process alive forever", async () => {
+ let process = null;
+ const success = async () => {
+ process = Bun.spawn({
+ cmd: [bunExe(), "run", path.join(import.meta.dir, "process-setImmediate-fixture.js")],
+ stdout: "ignore",
+ env: {
+ ...bunEnv,
+ NODE_ENV: undefined,
+ },
+ });
+ await process.exited;
+ process = null;
+ return true;
+ };
+
+ const fail = async () => {
+ await Bun.sleep(500);
+ process?.kill();
+ return false;
+ };
+
+ expect(await Promise.race([success(), fail()])).toBe(true);
+});