diff options
author | 2023-02-22 21:50:26 -0800 | |
---|---|---|
committer | 2023-02-22 21:50:39 -0800 | |
commit | 1d592a9489170cf2032976b51e73e2859fd97ca0 (patch) | |
tree | 33ac4a276108057e207bb65e94c38c15f39d7946 | |
parent | 17efd52ba3e96aac089a4a8ba893dfda00a80abf (diff) | |
download | bun-1d592a9489170cf2032976b51e73e2859fd97ca0.tar.gz bun-1d592a9489170cf2032976b51e73e2859fd97ca0.tar.zst bun-1d592a9489170cf2032976b51e73e2859fd97ca0.zip |
Add leaky test
-rw-r--r-- | test/bun.js/serve.test.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/bun.js/serve.test.ts b/test/bun.js/serve.test.ts index d5581cf7c..c049aad1a 100644 --- a/test/bun.js/serve.test.ts +++ b/test/bun.js/serve.test.ts @@ -113,6 +113,44 @@ it("request.signal works in trivial case", async () => { ); }); +it("request.signal works in leaky case", async () => { + var aborty = new AbortController(); + var didAbort = false; + var leaky; + await runTest( + { + async fetch(req) { + leaky = req; + expect(didAbort).toBe(false); + aborty.abort(); + await Bun.sleep(2); + return new Response("Test failed!"); + }, + }, + async server => { + try { + const resp = fetch(`http://${server.hostname}:${server.port}`, { signal: aborty.signal }); + + await Bun.sleep(1); + + leaky.signal.addEventListener("abort", () => { + didAbort = true; + }); + + await resp; + + throw new Error("Expected fetch to throw"); + } catch (e: any) { + expect(e.name).toBe("AbortError"); + } + + await Bun.sleep(1); + + expect(didAbort).toBe(true); + }, + ); +}); + it("should work for a file", async () => { const fixture = resolve(import.meta.dir, "./fetch.js.txt"); const textToExpect = readFileSync(fixture, "utf-8"); |