diff options
Diffstat (limited to 'cli/tests/unit/serve_test.ts')
-rw-r--r-- | cli/tests/unit/serve_test.ts | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/cli/tests/unit/serve_test.ts b/cli/tests/unit/serve_test.ts index cfe74e659..2e7836b6a 100644 --- a/cli/tests/unit/serve_test.ts +++ b/cli/tests/unit/serve_test.ts @@ -965,7 +965,8 @@ function createStreamTest(count: number, delay: number, action: string) { try { await listeningPromise; - const resp = await fetch(`http://127.0.0.1:${servePort}/`); + const client = Deno.createHttpClient({}); + const resp = await fetch(`http://127.0.0.1:${servePort}/`, { client }); if (action == "Throw") { await assertRejects(async () => { await resp.text(); @@ -980,6 +981,7 @@ function createStreamTest(count: number, delay: number, action: string) { assertEquals(text, expected); } + client.close(); } finally { ac.abort(); await server.shutdown(); @@ -1096,12 +1098,14 @@ Deno.test( }); await listeningPromise; - const resp = await fetch(`http://127.0.0.1:${servePort}/`); + const client = Deno.createHttpClient({}); + const resp = await fetch(`http://127.0.0.1:${servePort}/`, { client }); const respBody = await resp.text(); assertEquals("", respBody); ac.abort(); await server.finished; + client.close(); }, ); @@ -1138,12 +1142,14 @@ Deno.test( }); await listeningPromise; - const resp = await fetch(`http://127.0.0.1:${servePort}/`); + const client = Deno.createHttpClient({}); + const resp = await fetch(`http://127.0.0.1:${servePort}/`, { client }); // Incorrectly implemented reader ReadableStream should reject. assertStringIncludes(await resp.text(), "Failed to execute 'enqueue'"); await errorPromise; ac.abort(); await server.finished; + client.close(); }, ); @@ -1187,6 +1193,7 @@ Deno.test( Deno.test({ permissions: { net: true } }, async function httpServerWebSocket() { const ac = new AbortController(); const listeningPromise = deferred(); + const done = deferred(); const server = Deno.serve({ handler: (request) => { const { @@ -1201,6 +1208,7 @@ Deno.test({ permissions: { net: true } }, async function httpServerWebSocket() { socket.send(m.data); socket.close(1001); }; + socket.onclose = () => done.resolve(); return response; }, port: servePort, @@ -1221,6 +1229,7 @@ Deno.test({ permissions: { net: true } }, async function httpServerWebSocket() { ws.onopen = () => ws.send("foo"); await def; + await done; ac.abort(); await server.finished; }); @@ -1308,6 +1317,7 @@ Deno.test( { permissions: { net: true } }, async function httpServerWebSocketUpgradeTwice() { const ac = new AbortController(); + const done = deferred(); const listeningPromise = deferred(); const server = Deno.serve({ handler: (request) => { @@ -1330,6 +1340,7 @@ Deno.test( socket.send(m.data); socket.close(1001); }; + socket.onclose = () => done.resolve(); return response; }, port: servePort, @@ -1350,6 +1361,7 @@ Deno.test( ws.onopen = () => ws.send("foo"); await def; + await done; ac.abort(); await server.finished; }, @@ -1359,6 +1371,7 @@ Deno.test( { permissions: { net: true } }, async function httpServerWebSocketCloseFast() { const ac = new AbortController(); + const done = deferred(); const listeningPromise = deferred(); const server = Deno.serve({ handler: (request) => { @@ -1367,6 +1380,7 @@ Deno.test( socket, } = Deno.upgradeWebSocket(request); socket.onopen = () => socket.close(); + socket.onclose = () => done.resolve(); return response; }, port: servePort, @@ -1385,6 +1399,7 @@ Deno.test( ws.onclose = () => def.resolve(); await def; + await done; ac.abort(); await server.finished; }, @@ -1394,6 +1409,7 @@ Deno.test( { permissions: { net: true } }, async function httpServerWebSocketCanAccessRequest() { const ac = new AbortController(); + const done = deferred(); const listeningPromise = deferred(); const server = Deno.serve({ handler: (request) => { @@ -1409,6 +1425,7 @@ Deno.test( socket.send(request.url.toString()); socket.close(1001); }; + socket.onclose = () => done.resolve(); return response; }, port: servePort, @@ -1430,6 +1447,7 @@ Deno.test( ws.onopen = () => ws.send("foo"); await def; + await done; ac.abort(); await server.finished; }, @@ -1588,9 +1606,11 @@ Deno.test( ); const { readable, writable } = new TransformStream(); + const client = Deno.createHttpClient({}); const resp = await fetch(`http://127.0.0.1:${servePort}/`, { method: "POST", body: readable, + client, }); await promise; @@ -1598,6 +1618,7 @@ Deno.test( await testDuplex(resp.body.getReader(), writable.getWriter()); ac.abort(); await server.finished; + client.close(); }, ); @@ -1632,9 +1653,11 @@ Deno.test( ); const { readable, writable } = new TransformStream(); + const client = Deno.createHttpClient({}); const resp = await fetch(`http://127.0.0.1:${servePort}/`, { method: "POST", body: readable, + client, }); await promise; @@ -1642,6 +1665,7 @@ Deno.test( await testDuplex(resp.body.getReader(), writable.getWriter()); ac.abort(); await server.finished; + client.close(); }, ); @@ -2600,9 +2624,12 @@ for (const testCase of compressionTestCases) { }); try { await listeningPromise; + const client = Deno.createHttpClient({}); const resp = await fetch(`http://127.0.0.1:${servePort}/`, { headers: testCase.in as HeadersInit, + client, }); + client.close(); await promise; const body = await resp.arrayBuffer(); if (testCase.expect == null) { @@ -3192,14 +3219,16 @@ Deno.test( let count = 0; const server = Deno.serve({ async onListen({ port }: { port: number }) { - const res1 = await fetch(`http://localhost:${port}/`); + const client = Deno.createHttpClient({}); + const res1 = await fetch(`http://localhost:${port}/`, { client }); assertEquals(await res1.text(), "hello world 1"); - const res2 = await fetch(`http://localhost:${port}/`); + const res2 = await fetch(`http://localhost:${port}/`, { client }); assertEquals(await res2.text(), "hello world 2"); promise.resolve(); ac.abort(); + client.close(); }, signal: ac.signal, }, () => { @@ -3252,13 +3281,16 @@ Deno.test( try { const port = await listeningPromise; + const client = Deno.createHttpClient({}); const resp = await fetch(`http://localhost:${port}/`, { headers: { connection: "close" }, method: "POST", body: '{"sus":true}', + client, }); const text = await resp.text(); assertEquals(text, "ok"); + client.close(); } finally { ac.abort(); await server.finished; |