diff options
Diffstat (limited to 'test/bun.js/bun-server.test.ts')
-rw-r--r-- | test/bun.js/bun-server.test.ts | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/test/bun.js/bun-server.test.ts b/test/bun.js/bun-server.test.ts deleted file mode 100644 index 52574d2a3..000000000 --- a/test/bun.js/bun-server.test.ts +++ /dev/null @@ -1,171 +0,0 @@ -import { describe, expect, test } from "bun:test"; - -describe("Server", () => { - test("returns active port when initializing server with 0 port", () => { - const server = Bun.serve({ - fetch() { - return new Response("Hello"); - }, - port: 0, - }); - - expect(server.port).not.toBe(0); - expect(server.port).toBeDefined(); - server.stop(true); - }); - - test("allows connecting to server", async () => { - const server = Bun.serve({ - fetch() { - return new Response("Hello"); - }, - port: 0, - }); - - const response = await fetch(`http://${server.hostname}:${server.port}`); - expect(await response.text()).toBe("Hello"); - server.stop(true); - }); - - test("abort signal on server", async () => { - { - let signalOnServer = false; - const server = Bun.serve({ - async fetch(req) { - req.signal.addEventListener("abort", () => { - signalOnServer = true; - }); - await Bun.sleep(15); - return new Response("Hello"); - }, - port: 0, - }); - - try { - await fetch(`http://${server.hostname}:${server.port}`, { signal: AbortSignal.timeout(10) }); - } catch {} - expect(signalOnServer).toBe(true); - server.stop(true); - } - }); - - test("abort signal on server should only fire if aborted", async () => { - { - const abortController = new AbortController(); - - let signalOnServer = false; - const server = Bun.serve({ - async fetch(req) { - req.signal.addEventListener("abort", () => { - signalOnServer = true; - }); - return new Response("Hello"); - }, - port: 0, - }); - - try { - await fetch(`http://${server.hostname}:${server.port}`, { signal: abortController.signal }); - } catch {} - expect(signalOnServer).toBe(false); - server.stop(true); - } - }); - - test("abort signal on server with direct stream", async () => { - { - let signalOnServer = false; - const abortController = new AbortController(); - - const server = Bun.serve({ - async fetch(req) { - req.signal.addEventListener("abort", () => { - signalOnServer = true; - }); - return new Response( - new ReadableStream({ - type: "direct", - async pull(controller) { - abortController.abort(); - - const buffer = await Bun.file(import.meta.dir + "/fixture.html.gz").arrayBuffer(); - controller.write(buffer); - - //wait to detect the connection abortion - await Bun.sleep(15); - - controller.close(); - }, - }), - { - headers: { - "Content-Encoding": "gzip", - "Content-Type": "text/html; charset=utf-8", - "Content-Length": "1", - }, - }, - ); - }, - port: 0, - }); - - try { - await fetch(`http://${server.hostname}:${server.port}`, { signal: abortController.signal }); - } catch {} - await Bun.sleep(10); - expect(signalOnServer).toBe(true); - server.stop(true); - } - }); - - test("abort signal on server with stream", async () => { - { - let signalOnServer = false; - const abortController = new AbortController(); - - const server = Bun.serve({ - async fetch(req) { - req.signal.addEventListener("abort", () => { - signalOnServer = true; - }); - return new Response( - new ReadableStream({ - async pull(controller) { - console.trace("here"); - abortController.abort(); - - const buffer = await Bun.file(import.meta.dir + "/fixture.html.gz").arrayBuffer(); - console.trace("here"); - controller.enqueue(buffer); - console.trace("here"); - - //wait to detect the connection abortion - await Bun.sleep(15); - controller.close(); - }, - }), - { - headers: { - "Content-Encoding": "gzip", - "Content-Type": "text/html; charset=utf-8", - "Content-Length": "1", - }, - }, - ); - }, - port: 0, - }); - - try { - console.trace("here"); - await fetch(`http://${server.hostname}:${server.port}`, { signal: abortController.signal }); - } catch {} - await Bun.sleep(10); - console.trace("here"); - expect(signalOnServer).toBe(true); - console.trace("here"); - server.stop(true); - console.trace("here"); - } - }); -}); |