diff options
Diffstat (limited to 'tests/testdata/run/websocket_server_idletimeout.ts')
-rw-r--r-- | tests/testdata/run/websocket_server_idletimeout.ts | 25 |
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(); |