mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
24 lines
715 B
TypeScript
24 lines
715 B
TypeScript
import { expect, test } from "bun:test";
|
|
|
|
test("setImmediate doesn't block the event loop", async () => {
|
|
const incomingTimestamps = [];
|
|
var hasResponded = false;
|
|
var expectedTime = "";
|
|
using server = Bun.serve({
|
|
port: 0,
|
|
async fetch(req) {
|
|
await new Promise(resolve => setTimeout(resolve, 1500).unref());
|
|
function queuey() {
|
|
incomingTimestamps.push(Date.now());
|
|
if (!hasResponded) setImmediate(queuey);
|
|
}
|
|
setImmediate(queuey);
|
|
return new Response((expectedTime = Date.now().toString(10)));
|
|
},
|
|
});
|
|
|
|
const resp = await fetch(`http://${server.hostname}:${server.port}/`);
|
|
expect(await resp.text()).toBe(expectedTime);
|
|
hasResponded = true;
|
|
});
|