summaryrefslogtreecommitdiff
path: root/cli/tests/unit/read_file_test.ts
diff options
context:
space:
mode:
authorAndreu Botella <abb@randomunok.com>2021-12-16 12:57:26 +0100
committerGitHub <noreply@github.com>2021-12-16 12:57:26 +0100
commit01a6b66034b53dbeffaa12d1d408066a1bc28643 (patch)
tree020291ed0b71562b6376bda2989925f105f6fadd /cli/tests/unit/read_file_test.ts
parent9ffc7edc23444be8bdcc1befd3709b309780e3d1 (diff)
feat: support abort reasons in Deno APIs and `WebSocketStream` (#13066)
Diffstat (limited to 'cli/tests/unit/read_file_test.ts')
-rw-r--r--cli/tests/unit/read_file_test.ts46
1 files changed, 44 insertions, 2 deletions
diff --git a/cli/tests/unit/read_file_test.ts b/cli/tests/unit/read_file_test.ts
index df3161f0b..4b1ebef0b 100644
--- a/cli/tests/unit/read_file_test.ts
+++ b/cli/tests/unit/read_file_test.ts
@@ -6,6 +6,7 @@ import {
assertRejects,
assertThrows,
pathToAbsoluteFileUrl,
+ unreachable,
} from "./test_util.ts";
Deno.test({ permissions: { read: true } }, function readFileSyncSuccess() {
@@ -95,11 +96,52 @@ Deno.test(
async function readFileWithAbortSignal() {
const ac = new AbortController();
queueMicrotask(() => ac.abort());
- await assertRejects(async () => {
+ await assertRejects(
+ async () => {
+ await Deno.readFile("cli/tests/testdata/fixture.json", {
+ signal: ac.signal,
+ });
+ },
+ (error: Error) => {
+ assert(error instanceof DOMException);
+ assertEquals(error.name, "AbortError");
+ },
+ );
+ },
+);
+
+Deno.test(
+ { permissions: { read: true } },
+ async function readFileWithAbortSignalReason() {
+ const ac = new AbortController();
+ const abortReason = new Error();
+ queueMicrotask(() => ac.abort(abortReason));
+ await assertRejects(
+ async () => {
+ await Deno.readFile("cli/tests/testdata/fixture.json", {
+ signal: ac.signal,
+ });
+ },
+ (error: Error) => {
+ assertEquals(error, abortReason);
+ },
+ );
+ },
+);
+
+Deno.test(
+ { permissions: { read: true } },
+ async function readFileWithAbortSignalPrimitiveReason() {
+ const ac = new AbortController();
+ queueMicrotask(() => ac.abort("Some string"));
+ try {
await Deno.readFile("cli/tests/testdata/fixture.json", {
signal: ac.signal,
});
- });
+ unreachable();
+ } catch (e) {
+ assertEquals(e, "Some string");
+ }
},
);