summaryrefslogtreecommitdiff
path: root/cli/tests/testdata/run/websocket_server_idletimeout.ts
blob: 211b5f6ea9e44a598830257ee43a42eef00496b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { assertEquals } from "../../../../test_util/std/testing/asserts.ts";
import { deferred } from "../../../../test_util/std/async/deferred.ts";

const errorDeferred = deferred();
const closeDeferred = deferred();

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;
await closeDeferred;
listener.close();