mirror of
https://github.com/oven-sh/bun
synced 2026-02-11 03:18:53 +00:00
60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
import { test, expect, describe } from "bun:test";
|
|
import { join } from "node:path";
|
|
import { bunEnv, bunExe } from "harness";
|
|
|
|
describe("fetch doesn't leak", () => {
|
|
test("fixture #1", async () => {
|
|
const body = new Blob(["some body in here!".repeat(100)]);
|
|
var count = 0;
|
|
const server = Bun.serve({
|
|
port: 0,
|
|
|
|
fetch(req) {
|
|
count++;
|
|
return new Response(body);
|
|
},
|
|
});
|
|
|
|
const proc = Bun.spawn({
|
|
env: {
|
|
...bunEnv,
|
|
SERVER: `http://${server.hostname}:${server.port}`,
|
|
COUNT: "200",
|
|
},
|
|
stderr: "inherit",
|
|
stdout: "inherit",
|
|
cmd: [bunExe(), "--smol", join(import.meta.dir, "fetch-leak-test-fixture.js")],
|
|
});
|
|
|
|
const exitCode = await proc.exited;
|
|
server.stop(true);
|
|
expect(exitCode).toBe(0);
|
|
expect(count).toBe(200);
|
|
});
|
|
|
|
test("fixture #2", async () => {
|
|
const body = new Blob(["some body in here!".repeat(100)]);
|
|
const server = Bun.serve({
|
|
port: 0,
|
|
|
|
fetch(req) {
|
|
return new Response(body);
|
|
},
|
|
});
|
|
|
|
const proc = Bun.spawn({
|
|
env: {
|
|
...bunEnv,
|
|
SERVER: `http://${server.hostname}:${server.port}`,
|
|
},
|
|
stderr: "inherit",
|
|
stdout: "inherit",
|
|
cmd: [bunExe(), "--smol", join(import.meta.dir, "fetch-leak-test-fixture-2.js")],
|
|
});
|
|
|
|
const exitCode = await proc.exited;
|
|
server.stop(true);
|
|
expect(exitCode).toBe(0);
|
|
});
|
|
});
|