diff options
author | Andreu Botella <abb@randomunok.com> | 2021-12-16 12:57:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-16 12:57:26 +0100 |
commit | 01a6b66034b53dbeffaa12d1d408066a1bc28643 (patch) | |
tree | 020291ed0b71562b6376bda2989925f105f6fadd /cli/tests/testdata/websocketstream_test.ts | |
parent | 9ffc7edc23444be8bdcc1befd3709b309780e3d1 (diff) |
feat: support abort reasons in Deno APIs and `WebSocketStream` (#13066)
Diffstat (limited to 'cli/tests/testdata/websocketstream_test.ts')
-rw-r--r-- | cli/tests/testdata/websocketstream_test.ts | 49 |
1 files changed, 46 insertions, 3 deletions
diff --git a/cli/tests/testdata/websocketstream_test.ts b/cli/tests/testdata/websocketstream_test.ts index ba5c281eb..1198c4164 100644 --- a/cli/tests/testdata/websocketstream_test.ts +++ b/cli/tests/testdata/websocketstream_test.ts @@ -1,9 +1,11 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. import { + assert, assertEquals, assertRejects, assertThrows, + unreachable, } from "../../../test_util/std/testing/asserts.ts"; Deno.test("fragment", () => { @@ -89,8 +91,49 @@ Deno.test("aborting immediately throws an AbortError", async () => { controller.abort(); await assertRejects( () => wss.connection, - DOMException, - "connection was aborted", + (error: Error) => { + assert(error instanceof DOMException); + assertEquals(error.name, "AbortError"); + }, + ); + await assertRejects( + () => wss.closed, + (error: Error) => { + assert(error instanceof DOMException); + assertEquals(error.name, "AbortError"); + }, + ); +}); + +Deno.test("aborting immediately with a reason throws that reason", async () => { + const controller = new AbortController(); + const wss = new WebSocketStream("ws://localhost:4242", { + signal: controller.signal, + }); + const abortReason = new Error(); + controller.abort(abortReason); + await assertRejects( + () => wss.connection, + (error: Error) => assertEquals(error, abortReason), + ); + await assertRejects( + () => wss.closed, + (error: Error) => assertEquals(error, abortReason), + ); +}); + +Deno.test("aborting immediately with a primitive as reason throws that primitive", async () => { + const controller = new AbortController(); + const wss = new WebSocketStream("ws://localhost:4242", { + signal: controller.signal, + }); + controller.abort("Some string"); + await wss.connection.then( + () => unreachable(), + (e) => assertEquals(e, "Some string"), + ); + await wss.closed.then( + () => unreachable(), + (e) => assertEquals(e, "Some string"), ); - await assertRejects(() => wss.closed, DOMException, "connection was aborted"); }); |