summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/unit/http_test.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/cli/tests/unit/http_test.ts b/cli/tests/unit/http_test.ts
index 9560394f0..df599c6f4 100644
--- a/cli/tests/unit/http_test.ts
+++ b/cli/tests/unit/http_test.ts
@@ -339,3 +339,37 @@ unitTest(
await promise;
},
);
+
+unitTest(
+ { perms: { net: true } },
+ async function httpServerNextRequestResolvesOnClose() {
+ const delay = (n: number) =>
+ new Promise((resolve) => setTimeout(resolve, n));
+ const httpConnList: Deno.HttpConn[] = [];
+
+ async function serve(l: Deno.Listener) {
+ for await (const conn of l) {
+ (async () => {
+ const c = Deno.serveHttp(conn);
+ httpConnList.push(c);
+ for await (const { respondWith } of c) {
+ respondWith(new Response("hello"));
+ }
+ })();
+ }
+ }
+
+ const l = Deno.listen({ port: 4500 });
+ serve(l);
+
+ await delay(300);
+ const res = await fetch("http://localhost:4500/");
+ const _text = await res.text();
+
+ // Close connection and listener.
+ httpConnList.forEach((conn) => conn.close());
+ l.close();
+
+ await delay(300);
+ },
+);