summaryrefslogtreecommitdiff
path: root/tests/testdata/run/websocket_server_idletimeout.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testdata/run/websocket_server_idletimeout.ts')
-rw-r--r--tests/testdata/run/websocket_server_idletimeout.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/testdata/run/websocket_server_idletimeout.ts b/tests/testdata/run/websocket_server_idletimeout.ts
new file mode 100644
index 000000000..f116c4556
--- /dev/null
+++ b/tests/testdata/run/websocket_server_idletimeout.ts
@@ -0,0 +1,25 @@
+import { assertEquals } from "../../../test_util/std/assert/mod.ts";
+
+const errorDeferred = Promise.withResolvers<void>();
+const closeDeferred = Promise.withResolvers<void>();
+
+const listener = Deno.listen({ port: 4509 });
+console.log("READY");
+const httpConn = Deno.serveHttp(await listener.accept());
+const { request, respondWith } = (await httpConn.nextRequest())!;
+const { response, socket } = Deno.upgradeWebSocket(request, {
+ idleTimeout: 1,
+});
+socket.onerror = (e) => {
+ assertEquals((e as ErrorEvent).message, "No response from ping frame.");
+ errorDeferred.resolve();
+};
+socket.onclose = (e) => {
+ assertEquals(e.reason, "No response from ping frame.");
+ closeDeferred.resolve();
+};
+await respondWith(response);
+
+await errorDeferred.promise;
+await closeDeferred.promise;
+listener.close();