summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/unit/buffer_test.ts17
-rw-r--r--cli/tests/unit/chmod_test.ts42
-rw-r--r--cli/tests/unit/copy_file_test.ts61
-rw-r--r--cli/tests/unit/fetch_test.ts49
-rw-r--r--cli/tests/unit/files_test.ts125
-rw-r--r--cli/tests/unit/fs_events_test.ts39
-rw-r--r--cli/tests/unit/link_test.ts38
-rw-r--r--cli/tests/unit/make_temp_test.ts58
-rw-r--r--cli/tests/unit/mkdir_test.ts33
-rw-r--r--cli/tests/unit/net_test.ts52
-rw-r--r--cli/tests/unit/os_test.ts50
-rw-r--r--cli/tests/unit/process_test.ts28
-rw-r--r--cli/tests/unit/read_dir_test.ts48
-rw-r--r--cli/tests/unit/read_file_test.ts33
-rw-r--r--cli/tests/unit/read_link_test.ts38
-rw-r--r--cli/tests/unit/read_text_file_test.ts33
-rw-r--r--cli/tests/unit/real_path_test.ts43
-rw-r--r--cli/tests/unit/remove_test.ts148
-rw-r--r--cli/tests/unit/rename_test.ts18
-rw-r--r--cli/tests/unit/resources_test.ts10
-rw-r--r--cli/tests/unit/stat_test.ts100
-rw-r--r--cli/tests/unit/symlink_test.ts11
-rw-r--r--cli/tests/unit/text_encoding_test.ts11
-rw-r--r--cli/tests/unit/tls_test.ts60
-rw-r--r--cli/tests/unit/truncate_test.ts25
-rw-r--r--cli/tests/unit/utime_test.ts43
-rw-r--r--cli/tests/unit/write_file_test.ts61
-rw-r--r--cli/tests/unit/write_text_file_test.ts43
28 files changed, 404 insertions, 913 deletions
diff --git a/cli/tests/unit/buffer_test.ts b/cli/tests/unit/buffer_test.ts
index c5a63b5c8..644f05952 100644
--- a/cli/tests/unit/buffer_test.ts
+++ b/cli/tests/unit/buffer_test.ts
@@ -6,7 +6,6 @@
import {
assertEquals,
assert,
- assertStringContains,
assertThrows,
assertThrowsAsync,
unitTest,
@@ -159,15 +158,13 @@ unitTest(async function bufferTooLargeByteWrites(): Promise<void> {
const buf = new Deno.Buffer(xBytes.buffer as ArrayBuffer);
await buf.read(tmp);
- let err;
- try {
- buf.grow(growLen);
- } catch (e) {
- err = e;
- }
-
- assert(err instanceof Error);
- assertStringContains(err.message, "grown beyond the maximum size");
+ assertThrows(
+ () => {
+ buf.grow(growLen);
+ },
+ Error,
+ "grown beyond the maximum size"
+ );
});
unitTest(async function bufferLargeByteReads(): Promise<void> {
diff --git a/cli/tests/unit/chmod_test.ts b/cli/tests/unit/chmod_test.ts
index 02a5fb22e..5a2afd507 100644
--- a/cli/tests/unit/chmod_test.ts
+++ b/cli/tests/unit/chmod_test.ts
@@ -1,5 +1,11 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import {
+ unitTest,
+ assert,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
unitTest(
{ ignore: Deno.build.os === "windows", perms: { read: true, write: true } },
@@ -70,25 +76,16 @@ unitTest(
);
unitTest({ perms: { write: true } }, function chmodSyncFailure(): void {
- let err;
- try {
+ assertThrows(() => {
const filename = "/badfile.txt";
Deno.chmodSync(filename, 0o777);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { write: false } }, function chmodSyncPerm(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.chmodSync("/somefile.txt", 0o777);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -163,25 +160,16 @@ unitTest(
unitTest({ perms: { write: true } }, async function chmodFailure(): Promise<
void
> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
const filename = "/badfile.txt";
await Deno.chmod(filename, 0o777);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { write: false } }, async function chmodPerm(): Promise<
void
> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.chmod("/somefile.txt", 0o777);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
diff --git a/cli/tests/unit/copy_file_test.ts b/cli/tests/unit/copy_file_test.ts
index 5a1492e50..5abceb797 100644
--- a/cli/tests/unit/copy_file_test.ts
+++ b/cli/tests/unit/copy_file_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import {
+ unitTest,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
function readFileString(filename: string | URL): string {
const dataRead = Deno.readFileSync(filename);
@@ -67,14 +72,9 @@ unitTest(
const fromFilename = tempDir + "/from.txt";
const toFilename = tempDir + "/to.txt";
// We skip initial writing here, from.txt does not exist
- let err;
- try {
+ assertThrows(() => {
Deno.copyFileSync(fromFilename, toFilename);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
Deno.removeSync(tempDir, { recursive: true });
}
@@ -83,28 +83,18 @@ unitTest(
unitTest(
{ perms: { write: true, read: false } },
function copyFileSyncPerm1(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.copyFileSync("/from.txt", "/to.txt");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);
unitTest(
{ perms: { write: false, read: true } },
function copyFileSyncPerm2(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.copyFileSync("/from.txt", "/to.txt");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);
@@ -172,14 +162,9 @@ unitTest(
const fromFilename = tempDir + "/from.txt";
const toFilename = tempDir + "/to.txt";
// We skip initial writing here, from.txt does not exist
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.copyFile(fromFilename, toFilename);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
Deno.removeSync(tempDir, { recursive: true });
}
@@ -207,27 +192,17 @@ unitTest(
unitTest(
{ perms: { read: false, write: true } },
async function copyFilePerm1(): Promise<void> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.copyFile("/from.txt", "/to.txt");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);
unitTest(
{ perms: { read: true, write: false } },
async function copyFilePerm2(): Promise<void> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.copyFile("/from.txt", "/to.txt");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);
diff --git a/cli/tests/unit/fetch_test.ts b/cli/tests/unit/fetch_test.ts
index b3de5ac4d..a52a7809a 100644
--- a/cli/tests/unit/fetch_test.ts
+++ b/cli/tests/unit/fetch_test.ts
@@ -3,35 +3,33 @@ import {
unitTest,
assert,
assertEquals,
- assertStringContains,
assertThrows,
+ assertThrowsAsync,
fail,
} from "./test_util.ts";
unitTest({ perms: { net: true } }, async function fetchProtocolError(): Promise<
void
> {
- let err;
- try {
- await fetch("file:///");
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof TypeError);
- assertStringContains(err.message, "not supported");
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await fetch("file:///");
+ },
+ TypeError,
+ "not supported"
+ );
});
unitTest(
{ perms: { net: true } },
async function fetchConnectionError(): Promise<void> {
- let err;
- try {
- await fetch("http://localhost:4000");
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.Http);
- assertStringContains(err.message, "error trying to connect");
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await fetch("http://localhost:4000");
+ },
+ Deno.errors.Http,
+ "error trying to connect"
+ );
}
);
@@ -44,14 +42,9 @@ unitTest({ perms: { net: true } }, async function fetchJsonSuccess(): Promise<
});
unitTest(async function fetchPerm(): Promise<void> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await fetch("http://localhost:4545/cli/tests/fixture.json");
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { net: true } }, async function fetchUrl(): Promise<void> {
@@ -208,13 +201,9 @@ unitTest({ perms: { net: true } }, async function responseClone(): Promise<
unitTest({ perms: { net: true } }, async function fetchEmptyInvalid(): Promise<
void
> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await fetch("");
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof URIError);
+ }, URIError);
});
unitTest(
diff --git a/cli/tests/unit/files_test.ts b/cli/tests/unit/files_test.ts
index e5db0c613..aca63928b 100644
--- a/cli/tests/unit/files_test.ts
+++ b/cli/tests/unit/files_test.ts
@@ -3,7 +3,7 @@ import {
unitTest,
assert,
assertEquals,
- assertStringContains,
+ assertThrowsAsync,
} from "./test_util.ts";
unitTest(function filesStdioFileDescriptors(): void {
@@ -251,63 +251,44 @@ unitTest(
const filename = "tests/hello.txt";
const openOptions: Deno.OpenOptions[] = [{ write: true }, { append: true }];
for (const options of openOptions) {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.open(filename, options);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
}
);
unitTest(async function openOptions(): Promise<void> {
const filename = "cli/tests/fixture.json";
- let err;
- try {
- await Deno.open(filename, { write: false });
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assertStringContains(
- err.message,
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await Deno.open(filename, { write: false });
+ },
+ Error,
"OpenOptions requires at least one option to be true"
);
- try {
- await Deno.open(filename, { truncate: true, write: false });
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assertStringContains(
- err.message,
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await Deno.open(filename, { truncate: true, write: false });
+ },
+ Error,
"'truncate' option requires 'write' option"
);
- try {
- await Deno.open(filename, { create: true, write: false });
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assertStringContains(
- err.message,
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await Deno.open(filename, { create: true, write: false });
+ },
+ Error,
"'create' or 'createNew' options require 'write' or 'append' option"
);
- try {
- await Deno.open(filename, { createNew: true, append: false });
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assertStringContains(
- err.message,
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await Deno.open(filename, { createNew: true, append: false });
+ },
+ Error,
"'create' or 'createNew' options require 'write' or 'append' option"
);
});
@@ -315,15 +296,9 @@ unitTest(async function openOptions(): Promise<void> {
unitTest({ perms: { read: false } }, async function readPermFailure(): Promise<
void
> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.open("package.json", { read: true });
- await Deno.open("cli/tests/fixture.json", { read: true });
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -339,16 +314,12 @@ unitTest(
const file = await Deno.open(filename, w);
// writing null should throw an error
- let err;
- try {
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- await file.write(null as any);
- } catch (e) {
- err = e;
- }
- // TODO: Check error kind when dispatch_minimal pipes errors properly
- assert(!!err);
-
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ await file.write(null as any);
+ }
+ ); // TODO: Check error kind when dispatch_minimal pipes errors properly
file.close();
await Deno.remove(tempDir, { recursive: true });
}
@@ -371,15 +342,11 @@ unitTest(
assert(bytesRead === 0);
// reading file into null buffer should throw an error
- let err;
- try {
+ await assertThrowsAsync(async () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
await file.read(null as any);
- } catch (e) {
- err = e;
- }
+ }, TypeError);
// TODO: Check error kind when dispatch_minimal pipes errors properly
- assert(!!err);
file.close();
await Deno.remove(tempDir, { recursive: true });
@@ -390,15 +357,9 @@ unitTest(
{ perms: { write: false, read: false } },
async function readWritePermFailure(): Promise<void> {
const filename = "tests/hello.txt";
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.open(filename, { read: true });
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
);
@@ -668,15 +629,13 @@ unitTest({ perms: { read: true } }, function seekSyncEnd(): void {
unitTest({ perms: { read: true } }, async function seekMode(): Promise<void> {
const filename = "cli/tests/hello.txt";
const file = await Deno.open(filename);
- let err;
- try {
- await file.seek(1, -1);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof TypeError);
- assertStringContains(err.message, "Invalid seek mode");
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await file.seek(1, -1);
+ },
+ TypeError,
+ "Invalid seek mode"
+ );
// We should still be able to read the file
// since it is still open.
diff --git a/cli/tests/unit/fs_events_test.ts b/cli/tests/unit/fs_events_test.ts
index ad8ba8502..ec146f185 100644
--- a/cli/tests/unit/fs_events_test.ts
+++ b/cli/tests/unit/fs_events_test.ts
@@ -1,37 +1,28 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert } from "./test_util.ts";
+import { unitTest, assert, assertThrows } from "./test_util.ts";
// TODO(ry) Add more tests to specify format.
unitTest({ perms: { read: false } }, function watchFsPermissions() {
- let thrown = false;
- try {
+ assertThrows(() => {
Deno.watchFs(".");
- } catch (err) {
- assert(err instanceof Deno.errors.PermissionDenied);
- thrown = true;
- }
- assert(thrown);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function watchFsInvalidPath() {
- let thrown = false;
- try {
- Deno.watchFs("non-existant.file");
- } catch (err) {
- console.error(err);
- if (Deno.build.os === "windows") {
- assert(
- err.message.includes(
- "Input watch path is neither a file nor a directory"
- )
- );
- } else {
- assert(err instanceof Deno.errors.NotFound);
- }
- thrown = true;
+ if (Deno.build.os === "windows") {
+ assertThrows(
+ () => {
+ Deno.watchFs("non-existant.file");
+ },
+ Error,
+ "Input watch path is neither a file nor a directory"
+ );
+ } else {
+ assertThrows(() => {
+ Deno.watchFs("non-existant.file");
+ }, Deno.errors.NotFound);
}
- assert(thrown);
});
async function getTwoEvents(
diff --git a/cli/tests/unit/link_test.ts b/cli/tests/unit/link_test.ts
index c6ea4901e..c84d0f6a3 100644
--- a/cli/tests/unit/link_test.ts
+++ b/cli/tests/unit/link_test.ts
@@ -1,5 +1,5 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import { unitTest, assert, assertEquals, assertThrows } from "./test_util.ts";
unitTest(
{ perms: { read: true, write: true } },
@@ -50,14 +50,9 @@ unitTest(
// newname is already created.
Deno.writeFileSync(newName, new TextEncoder().encode("newName"));
- let err;
- try {
+ assertThrows(() => {
Deno.linkSync(oldName, newName);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.AlreadyExists);
+ }, Deno.errors.AlreadyExists);
}
);
@@ -68,42 +63,27 @@ unitTest(
const oldName = testDir + "/oldname";
const newName = testDir + "/newname";
- let err;
- try {
+ assertThrows(() => {
Deno.linkSync(oldName, newName);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
);
unitTest(
{ perms: { read: false, write: true } },
function linkSyncReadPerm(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.linkSync("oldbaddir", "newbaddir");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
);
unitTest(
{ perms: { read: true, write: false } },
function linkSyncWritePerm(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.linkSync("oldbaddir", "newbaddir");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
);
diff --git a/cli/tests/unit/make_temp_test.ts b/cli/tests/unit/make_temp_test.ts
index 59fe8c5f5..c1498aa64 100644
--- a/cli/tests/unit/make_temp_test.ts
+++ b/cli/tests/unit/make_temp_test.ts
@@ -1,5 +1,11 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import {
+ unitTest,
+ assert,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
unitTest({ perms: { write: true } }, function makeTempDirSyncSuccess(): void {
const dir1 = Deno.makeTempDirSync({ prefix: "hello", suffix: "world" });
@@ -17,13 +23,9 @@ unitTest({ perms: { write: true } }, function makeTempDirSyncSuccess(): void {
assert(dir3.startsWith(dir1));
assert(/^[\\\/]/.test(dir3.slice(dir1.length)));
// Check that creating a temp dir inside a nonexisting directory fails.
- let err;
- try {
+ assertThrows(() => {
Deno.makeTempDirSync({ dir: "/baddir" });
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
});
unitTest(
@@ -39,14 +41,9 @@ unitTest(
unitTest(function makeTempDirSyncPerm(): void {
// makeTempDirSync should require write permissions (for now).
- let err;
- try {
+ assertThrows(() => {
Deno.makeTempDirSync({ dir: "/baddir" });
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -67,13 +64,9 @@ unitTest(
assert(dir3.startsWith(dir1));
assert(/^[\\\/]/.test(dir3.slice(dir1.length)));
// Check that creating a temp dir inside a nonexisting directory fails.
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.makeTempDir({ dir: "/baddir" });
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
);
@@ -105,13 +98,9 @@ unitTest({ perms: { write: true } }, function makeTempFileSyncSuccess(): void {
assert(file3.startsWith(dir));
assert(/^[\\\/]/.test(file3.slice(dir.length)));
// Check that creating a temp file inside a nonexisting directory fails.
- let err;
- try {
+ assertThrows(() => {
Deno.makeTempFileSync({ dir: "/baddir" });
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
});
unitTest(
@@ -127,14 +116,9 @@ unitTest(
unitTest(function makeTempFileSyncPerm(): void {
// makeTempFileSync should require write permissions (for now).
- let err;
- try {
+ assertThrows(() => {
Deno.makeTempFileSync({ dir: "/baddir" });
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -156,13 +140,9 @@ unitTest(
assert(file3.startsWith(dir));
assert(/^[\\\/]/.test(file3.slice(dir.length)));
// Check that creating a temp file inside a nonexisting directory fails.
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.makeTempFile({ dir: "/baddir" });
- } catch (err_) {
- err = err_;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
);
diff --git a/cli/tests/unit/mkdir_test.ts b/cli/tests/unit/mkdir_test.ts
index 68755ef4d..32632bfef 100644
--- a/cli/tests/unit/mkdir_test.ts
+++ b/cli/tests/unit/mkdir_test.ts
@@ -1,5 +1,11 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals, assertThrows } from "./test_util.ts";
+import {
+ unitTest,
+ assert,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
function assertDirectory(path: string, mode?: number): void {
const info = Deno.lstatSync(path);
@@ -28,14 +34,9 @@ unitTest(
);
unitTest({ perms: { write: false } }, function mkdirSyncPerm(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.mkdirSync("/baddir");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -57,25 +58,17 @@ unitTest(
);
unitTest({ perms: { write: true } }, function mkdirErrSyncIfExists(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.mkdirSync(".");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.AlreadyExists);
+ }, Deno.errors.AlreadyExists);
});
unitTest({ perms: { write: true } }, async function mkdirErrIfExists(): Promise<
void
> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.mkdir(".");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.AlreadyExists);
+ }, Deno.errors.AlreadyExists);
});
unitTest(
diff --git a/cli/tests/unit/net_test.ts b/cli/tests/unit/net_test.ts
index bd0e489b5..e970f0360 100644
--- a/cli/tests/unit/net_test.ts
+++ b/cli/tests/unit/net_test.ts
@@ -3,6 +3,8 @@ import {
unitTest,
assert,
assertEquals,
+ assertThrows,
+ assertThrowsAsync,
createResolvable,
assertNotEquals,
} from "./test_util.ts";
@@ -71,15 +73,13 @@ unitTest(
const listener = Deno.listen({ port: 4501 });
const p = listener.accept();
listener.close();
- let err;
- try {
- await p;
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Error);
- assertEquals(err.message, "Listener has been closed");
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await p;
+ },
+ Deno.errors.BadResource,
+ "Listener has been closed"
+ );
}
);
@@ -93,15 +93,13 @@ unitTest(
});
const p = listener.accept();
listener.close();
- let err;
- try {
- await p;
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Error);
- assertEquals(err.message, "Listener has been closed");
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await p;
+ },
+ Deno.errors.BadResource,
+ "Listener has been closed"
+ );
}
);
@@ -458,14 +456,9 @@ unitTest(
assertEquals(2, buf[1]);
assertEquals(3, buf[2]);
// Check write should be closed
- let err;
- try {
+ await assertThrowsAsync(async () => {
await conn.write(new Uint8Array([1, 2, 3]));
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.BrokenPipe);
+ }, Deno.errors.BrokenPipe);
closeDeferred.resolve();
listener.close();
conn.close();
@@ -488,15 +481,10 @@ unitTest(
});
const conn = await Deno.connect(addr);
conn.closeWrite(); // closing write
- let err;
- try {
+ assertThrows(() => {
// Duplicated close should throw error
conn.closeWrite();
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof Deno.errors.NotConnected);
+ }, Deno.errors.NotConnected);
closeDeferred.resolve();
listener.close();
conn.close();
diff --git a/cli/tests/unit/os_test.ts b/cli/tests/unit/os_test.ts
index e838cb7c3..b737d939a 100644
--- a/cli/tests/unit/os_test.ts
+++ b/cli/tests/unit/os_test.ts
@@ -28,27 +28,15 @@ unitTest({ perms: { env: true } }, function deleteEnv(): void {
});
unitTest(function envPermissionDenied1(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.env.toObject();
- } catch (e) {
- err = e;
- }
- assertNotEquals(err, undefined);
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(function envPermissionDenied2(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.env.get("PATH");
- } catch (e) {
- err = e;
- }
- assertNotEquals(err, undefined);
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
// This test verifies that on Windows, environment variables are
@@ -143,15 +131,9 @@ unitTest({ perms: { env: true } }, function loadavgSuccess(): void {
});
unitTest({ perms: { env: false } }, function loadavgPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.loadavg();
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { env: true } }, function hostnameDir(): void {
@@ -159,15 +141,9 @@ unitTest({ perms: { env: true } }, function hostnameDir(): void {
});
unitTest({ perms: { env: false } }, function hostnamePerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.hostname();
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { env: true } }, function releaseDir(): void {
@@ -175,13 +151,7 @@ unitTest({ perms: { env: true } }, function releaseDir(): void {
});
unitTest({ perms: { env: false } }, function releasePerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.osRelease();
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
diff --git a/cli/tests/unit/process_test.ts b/cli/tests/unit/process_test.ts
index cf512eea5..f2e6e01e7 100644
--- a/cli/tests/unit/process_test.ts
+++ b/cli/tests/unit/process_test.ts
@@ -3,18 +3,14 @@ import {
assert,
assertEquals,
assertStringContains,
+ assertThrows,
unitTest,
} from "./test_util.ts";
unitTest(function runPermissions(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.run({ cmd: ["python", "-c", "print('hello world')"] });
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { run: true } }, async function runSuccess(): Promise<void> {
@@ -325,18 +321,13 @@ unitTest(function signalNumbers(): void {
});
unitTest(function killPermissions(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
// Unlike the other test cases, we don't have permission to spawn a
// subprocess we can safely kill. Instead we send SIGCONT to the current
// process - assuming that Deno does not have a special handler set for it
// and will just continue even if a signal is erroneously sent.
Deno.kill(Deno.pid, Deno.Signal.SIGCONT);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { run: true } }, async function killSuccess(): Promise<void> {
@@ -368,14 +359,9 @@ unitTest({ perms: { run: true } }, function killFailed(): void {
assert(!p.stdin);
assert(!p.stdout);
- let err;
- try {
+ assertThrows(() => {
Deno.kill(p.pid, 12345);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof TypeError);
+ }, TypeError);
p.close();
});
diff --git a/cli/tests/unit/read_dir_test.ts b/cli/tests/unit/read_dir_test.ts
index d9a5244c7..de4b217bf 100644
--- a/cli/tests/unit/read_dir_test.ts
+++ b/cli/tests/unit/read_dir_test.ts
@@ -3,6 +3,8 @@ import {
unitTest,
assert,
assertEquals,
+ assertThrows,
+ assertThrowsAsync,
pathToAbsoluteFileUrl,
} from "./test_util.ts";
@@ -30,42 +32,21 @@ unitTest({ perms: { read: true } }, function readDirSyncWithUrl(): void {
});
unitTest({ perms: { read: false } }, function readDirSyncPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.readDirSync("tests/");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function readDirSyncNotDir(): void {
- let caughtError = false;
- let src;
-
- try {
- src = Deno.readDirSync("cli/tests/fixture.json");
- } catch (err) {
- caughtError = true;
- assert(err instanceof Error);
- }
- assert(caughtError);
- assertEquals(src, undefined);
+ assertThrows(() => {
+ Deno.readDirSync("cli/tests/fixture.json");
+ }, Error);
});
unitTest({ perms: { read: true } }, function readDirSyncNotFound(): void {
- let caughtError = false;
- let src;
-
- try {
- src = Deno.readDirSync("bad_dir_name");
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
- assertEquals(src, undefined);
+ assertThrows(() => {
+ Deno.readDirSync("bad_dir_name");
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { read: true } }, async function readDirSuccess(): Promise<
@@ -93,12 +74,7 @@ unitTest({ perms: { read: true } }, async function readDirWithUrl(): Promise<
unitTest({ perms: { read: false } }, async function readDirPerm(): Promise<
void
> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.readDir("tests/")[Symbol.asyncIterator]().next();
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
diff --git a/cli/tests/unit/read_file_test.ts b/cli/tests/unit/read_file_test.ts
index cae9037ab..28407cf24 100644
--- a/cli/tests/unit/read_file_test.ts
+++ b/cli/tests/unit/read_file_test.ts
@@ -3,6 +3,8 @@ import {
unitTest,
assert,
assertEquals,
+ assertThrows,
+ assertThrowsAsync,
pathToAbsoluteFileUrl,
} from "./test_util.ts";
@@ -27,27 +29,15 @@ unitTest({ perms: { read: true } }, function readFileSyncUrl(): void {
});
unitTest({ perms: { read: false } }, function readFileSyncPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.readFileSync("cli/tests/fixture.json");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function readFileSyncNotFound(): void {
- let caughtError = false;
- let data;
- try {
- data = Deno.readFileSync("bad_filename");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
- assert(data === undefined);
+ assertThrows(() => {
+ Deno.readFileSync("bad_filename");
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { read: true } }, async function readFileUrl(): Promise<
@@ -77,14 +67,9 @@ unitTest({ perms: { read: true } }, async function readFileSuccess(): Promise<
unitTest({ perms: { read: false } }, async function readFilePerm(): Promise<
void
> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.readFile("cli/tests/fixture.json");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function readFileSyncLoop(): void {
diff --git a/cli/tests/unit/read_link_test.ts b/cli/tests/unit/read_link_test.ts
index 6821d8dc8..524b67923 100644
--- a/cli/tests/unit/read_link_test.ts
+++ b/cli/tests/unit/read_link_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import {
+ unitTest,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
unitTest(
{ perms: { write: true, read: true } },
@@ -19,27 +24,15 @@ unitTest(
);
unitTest({ perms: { read: false } }, function readLinkSyncPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.readLinkSync("/symlink");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function readLinkSyncNotFound(): void {
- let caughtError = false;
- let data;
- try {
- data = Deno.readLinkSync("bad_filename");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
- assertEquals(data, undefined);
+ assertThrows(() => {
+ Deno.readLinkSync("bad_filename");
+ }, Deno.errors.NotFound);
});
unitTest(
@@ -62,12 +55,7 @@ unitTest(
unitTest({ perms: { read: false } }, async function readLinkPerm(): Promise<
void
> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.readLink("/symlink");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
diff --git a/cli/tests/unit/read_text_file_test.ts b/cli/tests/unit/read_text_file_test.ts
index 0f1759c54..4222da5a9 100644
--- a/cli/tests/unit/read_text_file_test.ts
+++ b/cli/tests/unit/read_text_file_test.ts
@@ -2,6 +2,8 @@ import {
unitTest,
assert,
assertEquals,
+ assertThrows,
+ assertThrowsAsync,
pathToAbsoluteFileUrl,
} from "./test_util.ts";
@@ -22,27 +24,15 @@ unitTest({ perms: { read: true } }, function readTextFileSyncByUrl(): void {
});
unitTest({ perms: { read: false } }, function readTextFileSyncPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.readTextFileSync("cli/tests/fixture.json");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function readTextFileSyncNotFound(): void {
- let caughtError = false;
- let data;
- try {
- data = Deno.readTextFileSync("bad_filename");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
- assert(data === undefined);
+ assertThrows(() => {
+ Deno.readTextFileSync("bad_filename");
+ }, Deno.errors.NotFound);
});
unitTest(
@@ -69,14 +59,9 @@ unitTest({ perms: { read: true } }, async function readTextFileByUrl(): Promise<
unitTest({ perms: { read: false } }, async function readTextFilePerm(): Promise<
void
> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.readTextFile("cli/tests/fixture.json");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function readTextFileSyncLoop(): void {
diff --git a/cli/tests/unit/real_path_test.ts b/cli/tests/unit/real_path_test.ts
index c88955270..319e3f0d8 100644
--- a/cli/tests/unit/real_path_test.ts
+++ b/cli/tests/unit/real_path_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert } from "./test_util.ts";
+import {
+ unitTest,
+ assert,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
unitTest({ perms: { read: true } }, function realPathSyncSuccess(): void {
const incompletePath = "cli/tests/fixture.json";
@@ -30,25 +35,15 @@ unitTest(
);
unitTest({ perms: { read: false } }, function realPathSyncPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.realPathSync("some_file");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function realPathSyncNotFound(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.realPathSync("bad_filename");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { read: true } }, async function realPathSuccess(): Promise<
@@ -84,25 +79,15 @@ unitTest(
unitTest({ perms: { read: false } }, async function realPathPerm(): Promise<
void
> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.realPath("some_file");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, async function realPathNotFound(): Promise<
void
> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.realPath("bad_filename");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
});
diff --git a/cli/tests/unit/remove_test.ts b/cli/tests/unit/remove_test.ts
index 94fbba682..42160af5c 100644
--- a/cli/tests/unit/remove_test.ts
+++ b/cli/tests/unit/remove_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import {
+ unitTest,
+ assert,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
const REMOVE_METHODS = ["remove", "removeSync"] as const;
@@ -14,14 +19,9 @@ unitTest(
assert(pathInfo.isDirectory); // check exist first
await Deno[method](path); // remove
// We then check again after remove
- let err;
- try {
+ assertThrows(() => {
Deno.statSync(path);
- } catch (e) {
- err = e;
- }
- // Directory is gone
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
}
);
@@ -39,14 +39,9 @@ unitTest(
assert(fileInfo.isFile); // check exist first
await Deno[method](filename); // remove
// We then check again after remove
- let err;
- try {
+ assertThrows(() => {
Deno.statSync(filename);
- } catch (e) {
- err = e;
- }
- // File is gone
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
}
);
@@ -69,14 +64,9 @@ unitTest(
assert(fileInfo.isFile); // check exist first
await Deno[method](fileUrl); // remove
// We then check again after remove
- let err;
- try {
+ assertThrows(() => {
Deno.statSync(fileUrl);
- } catch (e) {
- err = e;
- }
- // File is gone
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
}
);
@@ -94,23 +84,16 @@ unitTest(
assert(pathInfo.isDirectory); // check exist first
const subPathInfo = Deno.statSync(subPath);
assert(subPathInfo.isDirectory); // check exist first
- let err;
- try {
- // Should not be able to recursively remove
+
+ await assertThrowsAsync(async () => {
await Deno[method](path);
- } catch (e) {
- err = e;
- }
+ }, Error);
// TODO(ry) Is Other really the error we should get here? What would Go do?
- assert(err instanceof Error);
+
// NON-EXISTENT DIRECTORY/FILE
- try {
- // Non-existent
+ await assertThrowsAsync(async () => {
await Deno[method]("/baddir");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
}
);
@@ -130,13 +113,9 @@ unitTest(
const pathInfo = Deno.lstatSync(danglingSymlinkPath);
assert(pathInfo.isSymlink);
await Deno[method](danglingSymlinkPath);
- let err;
- try {
+ assertThrows(() => {
Deno.lstatSync(danglingSymlinkPath);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
}
);
@@ -159,14 +138,10 @@ unitTest(
const symlinkPathInfo = Deno.statSync(validSymlinkPath);
assert(symlinkPathInfo.isFile);
await Deno[method](validSymlinkPath);
- let err;
- try {
+ assertThrows(() => {
Deno.statSync(validSymlinkPath);
- } catch (e) {
- err = e;
- }
+ }, Deno.errors.NotFound);
await Deno[method](filePath);
- assert(err instanceof Deno.errors.NotFound);
}
}
);
@@ -175,14 +150,9 @@ unitTest({ perms: { write: false } }, async function removePerm(): Promise<
void
> {
for (const method of REMOVE_METHODS) {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno[method]("/baddir");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
});
@@ -197,14 +167,12 @@ unitTest(
assert(pathInfo.isDirectory); // check exist first
await Deno[method](path, { recursive: true }); // remove
// We then check again after remove
- let err;
- try {
- Deno.statSync(path);
- } catch (e) {
- err = e;
- }
- // Directory is gone
- assert(err instanceof Deno.errors.NotFound);
+ assertThrows(
+ () => {
+ Deno.statSync(path);
+ }, // Directory is gone
+ Deno.errors.NotFound
+ );
// REMOVE NON-EMPTY DIRECTORY
path = Deno.makeTempDirSync() + "/dir/subdir";
@@ -217,13 +185,10 @@ unitTest(
assert(subPathInfo.isDirectory); // check exist first
await Deno[method](path, { recursive: true }); // remove
// We then check parent directory again after remove
- try {
+ assertThrows(() => {
Deno.statSync(path);
- } catch (e) {
- err = e;
- }
+ }, Deno.errors.NotFound);
// Directory is gone
- assert(err instanceof Deno.errors.NotFound);
}
}
);
@@ -241,14 +206,10 @@ unitTest(
assert(fileInfo.isFile); // check exist first
await Deno[method](filename, { recursive: true }); // remove
// We then check again after remove
- let err;
- try {
+ assertThrows(() => {
Deno.statSync(filename);
- } catch (e) {
- err = e;
- }
+ }, Deno.errors.NotFound);
// File is gone
- assert(err instanceof Deno.errors.NotFound);
}
}
);
@@ -258,14 +219,10 @@ unitTest({ perms: { write: true } }, async function removeAllFail(): Promise<
> {
for (const method of REMOVE_METHODS) {
// NON-EXISTENT DIRECTORY/FILE
- let err;
- try {
+ await assertThrowsAsync(async () => {
// Non-existent
await Deno[method]("/baddir", { recursive: true });
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
});
@@ -273,14 +230,9 @@ unitTest({ perms: { write: false } }, async function removeAllPerm(): Promise<
void
> {
for (const method of REMOVE_METHODS) {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno[method]("/baddir", { recursive: true });
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
});
@@ -298,13 +250,9 @@ unitTest(
Deno.statSync(path); // check if unix socket exists
await Deno[method](path);
- let err;
- try {
+ assertThrows(() => {
Deno.statSync(path);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
}
);
@@ -321,13 +269,9 @@ if (Deno.build.os === "windows") {
assert(await symlink.status());
symlink.close();
await Deno.remove("file_link");
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.lstat("file_link");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
);
@@ -343,13 +287,9 @@ if (Deno.build.os === "windows") {
symlink.close();
await Deno.remove("dir_link");
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.lstat("dir_link");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
);
}
diff --git a/cli/tests/unit/rename_test.ts b/cli/tests/unit/rename_test.ts
index b4047f906..38a259782 100644
--- a/cli/tests/unit/rename_test.ts
+++ b/cli/tests/unit/rename_test.ts
@@ -43,32 +43,22 @@ unitTest(
unitTest(
{ perms: { read: false, write: true } },
function renameSyncReadPerm(): void {
- let err;
- try {
+ assertThrows(() => {
const oldpath = "/oldbaddir";
const newpath = "/newbaddir";
Deno.renameSync(oldpath, newpath);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
);
unitTest(
{ perms: { read: true, write: false } },
function renameSyncWritePerm(): void {
- let err;
- try {
+ assertThrows(() => {
const oldpath = "/oldbaddir";
const newpath = "/newbaddir";
Deno.renameSync(oldpath, newpath);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
}
);
diff --git a/cli/tests/unit/resources_test.ts b/cli/tests/unit/resources_test.ts
index 385905a6e..e4d420055 100644
--- a/cli/tests/unit/resources_test.ts
+++ b/cli/tests/unit/resources_test.ts
@@ -1,14 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assertEquals, assert } from "./test_util.ts";
+import { unitTest, assertEquals, assert, assertThrows } from "./test_util.ts";
unitTest(function resourcesCloseBadArgs(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.close((null as unknown) as number);
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.InvalidData);
+ }, Deno.errors.InvalidData);
});
unitTest(function resourcesStdio(): void {
diff --git a/cli/tests/unit/stat_test.ts b/cli/tests/unit/stat_test.ts
index b32949286..48142bc12 100644
--- a/cli/tests/unit/stat_test.ts
+++ b/cli/tests/unit/stat_test.ts
@@ -3,6 +3,8 @@ import {
unitTest,
assert,
assertEquals,
+ assertThrows,
+ assertThrowsAsync,
pathToAbsoluteFileUrl,
} from "./test_util.ts";
@@ -98,29 +100,15 @@ unitTest(
);
unitTest({ perms: { read: false } }, function statSyncPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.statSync("README.md");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function statSyncNotFound(): void {
- let caughtError = false;
- let badInfo;
-
- try {
- badInfo = Deno.statSync("bad_file_name");
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.NotFound);
- }
-
- assert(caughtError);
- assertEquals(badInfo, undefined);
+ assertThrows(() => {
+ Deno.statSync("bad_file_name");
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { read: true } }, function lstatSyncSuccess(): void {
@@ -152,29 +140,15 @@ unitTest({ perms: { read: true } }, function lstatSyncSuccess(): void {
});
unitTest({ perms: { read: false } }, function lstatSyncPerm(): void {
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.lstatSync("README.md");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, function lstatSyncNotFound(): void {
- let caughtError = false;
- let badInfo;
-
- try {
- badInfo = Deno.lstatSync("bad_file_name");
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.NotFound);
- }
-
- assert(caughtError);
- assertEquals(badInfo, undefined);
+ assertThrows(() => {
+ Deno.lstatSync("bad_file_name");
+ }, Deno.errors.NotFound);
});
unitTest(
@@ -242,31 +216,19 @@ unitTest(
);
unitTest({ perms: { read: false } }, async function statPerm(): Promise<void> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.stat("README.md");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, async function statNotFound(): Promise<
void
> {
- let caughtError = false;
- let badInfo;
-
- try {
- badInfo = await Deno.stat("bad_file_name");
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.NotFound);
- }
-
- assert(caughtError);
- assertEquals(badInfo, undefined);
+ await assertThrowsAsync(
+ async (): Promise<void> => {
+ await Deno.stat("bad_file_name"), Deno.errors.NotFound;
+ }
+ );
});
unitTest({ perms: { read: true } }, async function lstatSuccess(): Promise<
@@ -300,31 +262,17 @@ unitTest({ perms: { read: true } }, async function lstatSuccess(): Promise<
});
unitTest({ perms: { read: false } }, async function lstatPerm(): Promise<void> {
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.lstat("README.md");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { read: true } }, async function lstatNotFound(): Promise<
void
> {
- let caughtError = false;
- let badInfo;
-
- try {
- badInfo = await Deno.lstat("bad_file_name");
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.NotFound);
- }
-
- assert(caughtError);
- assertEquals(badInfo, undefined);
+ await assertThrowsAsync(async () => {
+ await Deno.lstat("bad_file_name");
+ }, Deno.errors.NotFound);
});
unitTest(
diff --git a/cli/tests/unit/symlink_test.ts b/cli/tests/unit/symlink_test.ts
index 505a49bab..de0435014 100644
--- a/cli/tests/unit/symlink_test.ts
+++ b/cli/tests/unit/symlink_test.ts
@@ -1,5 +1,5 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import { unitTest, assert, assertThrows } from "./test_util.ts";
unitTest(
{ perms: { read: true, write: true } },
@@ -18,14 +18,9 @@ unitTest(
);
unitTest(function symlinkSyncPerm(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.symlinkSync("oldbaddir", "newbaddir");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(
diff --git a/cli/tests/unit/text_encoding_test.ts b/cli/tests/unit/text_encoding_test.ts
index 87b601f36..c87fc705d 100644
--- a/cli/tests/unit/text_encoding_test.ts
+++ b/cli/tests/unit/text_encoding_test.ts
@@ -1,5 +1,5 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import { unitTest, assert, assertEquals, assertThrows } from "./test_util.ts";
unitTest(function btoaSuccess(): void {
const text = "hello world";
@@ -52,14 +52,9 @@ unitTest(function atobThrows2(): void {
unitTest(function btoaFailed(): void {
const text = "你好";
- let err;
- try {
+ assertThrows(() => {
btoa(text);
- } catch (e) {
- err = e;
- }
- assert(!!err);
- assert(err instanceof TypeError);
+ }, TypeError);
});
unitTest(function textDecoder2(): void {
diff --git a/cli/tests/unit/tls_test.ts b/cli/tests/unit/tls_test.ts
index 3d071441d..5a7391e78 100644
--- a/cli/tests/unit/tls_test.ts
+++ b/cli/tests/unit/tls_test.ts
@@ -2,6 +2,8 @@
import {
assert,
assertEquals,
+ assertThrows,
+ assertThrowsAsync,
createResolvable,
unitTest,
} from "./test_util.ts";
@@ -12,35 +14,24 @@ const encoder = new TextEncoder();
const decoder = new TextDecoder();
unitTest(async function connectTLSNoPerm(): Promise<void> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.connectTls({ hostname: "github.com", port: 443 });
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(async function connectTLSCertFileNoReadPerm(): Promise<void> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.connectTls({
hostname: "github.com",
port: 443,
certFile: "cli/tests/tls/RootCA.crt",
});
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(
{ perms: { read: true, net: true } },
function listenTLSNonExistentCertKeyFiles(): void {
- let err;
const options = {
hostname: "localhost",
port: 3500,
@@ -48,42 +39,31 @@ unitTest(
keyFile: "cli/tests/tls/localhost.key",
};
- try {
+ assertThrows(() => {
Deno.listenTls({
...options,
certFile: "./non/existent/file",
});
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
- try {
+ assertThrows(() => {
Deno.listenTls({
...options,
keyFile: "./non/existent/file",
});
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.NotFound);
+ }, Deno.errors.NotFound);
}
);
unitTest({ perms: { net: true } }, function listenTLSNoReadPerm(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.listenTls({
hostname: "localhost",
port: 3500,
certFile: "cli/tests/tls/localhost.crt",
keyFile: "cli/tests/tls/localhost.key",
});
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -91,7 +71,6 @@ unitTest(
perms: { read: true, write: true, net: true },
},
function listenTLSEmptyKeyFile(): void {
- let err;
const options = {
hostname: "localhost",
port: 3500,
@@ -105,22 +84,18 @@ unitTest(
mode: 0o666,
});
- try {
+ assertThrows(() => {
Deno.listenTls({
...options,
keyFile: keyFilename,
});
- } catch (e) {
- err = e;
- }
- assert(err instanceof Error);
+ }, Error);
}
);
unitTest(
{ perms: { read: true, write: true, net: true } },
function listenTLSEmptyCertFile(): void {
- let err;
const options = {
hostname: "localhost",
port: 3500,
@@ -134,15 +109,12 @@ unitTest(
mode: 0o666,
});
- try {
+ assertThrows(() => {
Deno.listenTls({
...options,
certFile: certFilename,
});
- } catch (e) {
- err = e;
- }
- assert(err instanceof Error);
+ }, Error);
}
);
diff --git a/cli/tests/unit/truncate_test.ts b/cli/tests/unit/truncate_test.ts
index 82f8f03eb..0a7e20ab1 100644
--- a/cli/tests/unit/truncate_test.ts
+++ b/cli/tests/unit/truncate_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assertEquals, assert } from "./test_util.ts";
+import {
+ unitTest,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
unitTest(
{ perms: { read: true, write: true } },
@@ -76,25 +81,15 @@ unitTest(
);
unitTest({ perms: { write: false } }, function truncateSyncPerm(): void {
- let err;
- try {
+ assertThrows(() => {
Deno.truncateSync("/test_truncateSyncPermission.txt");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
unitTest({ perms: { write: false } }, async function truncatePerm(): Promise<
void
> {
- let err;
- try {
+ await assertThrowsAsync(async () => {
await Deno.truncate("/test_truncatePermission.txt");
- } catch (e) {
- err = e;
- }
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
+ }, Deno.errors.PermissionDenied);
});
diff --git a/cli/tests/unit/utime_test.ts b/cli/tests/unit/utime_test.ts
index 63727ae62..04b636c7d 100644
--- a/cli/tests/unit/utime_test.ts
+++ b/cli/tests/unit/utime_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert } from "./test_util.ts";
+import {
+ unitTest,
+ assert,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
// Allow 10 second difference.
// Note this might not be enough for FAT (but we are not testing on such fs).
@@ -99,14 +104,9 @@ unitTest(
const atime = 1000;
const mtime = 50000;
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.utimeSync("/baddir", atime, mtime);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
}
);
@@ -116,14 +116,9 @@ unitTest(
const atime = 1000;
const mtime = 50000;
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.utimeSync("/some_dir", atime, mtime);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);
@@ -201,14 +196,9 @@ unitTest(
const atime = 1000;
const mtime = 50000;
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.utime("/baddir", atime, mtime);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
}
);
@@ -218,13 +208,8 @@ unitTest(
const atime = 1000;
const mtime = 50000;
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.utime("/some_dir", atime, mtime);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);
diff --git a/cli/tests/unit/write_file_test.ts b/cli/tests/unit/write_file_test.ts
index 6c263c32c..bbe1daf38 100644
--- a/cli/tests/unit/write_file_test.ts
+++ b/cli/tests/unit/write_file_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import {
+ unitTest,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
unitTest(
{ perms: { read: true, write: true } },
@@ -39,14 +44,9 @@ unitTest({ perms: { write: true } }, function writeFileSyncFail(): void {
const data = enc.encode("Hello");
const filename = "/baddir/test.txt";
// The following should fail because /baddir doesn't exist (hopefully).
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.writeFileSync(filename, data);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { write: false } }, function writeFileSyncPerm(): void {
@@ -54,14 +54,9 @@ unitTest({ perms: { write: false } }, function writeFileSyncPerm(): void {
const data = enc.encode("Hello");
const filename = "/baddir/test.txt";
// The following should fail due to no write permission
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.writeFileSync(filename, data);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -85,15 +80,10 @@ unitTest(
const enc = new TextEncoder();
const data = enc.encode("Hello");
const filename = Deno.makeTempDirSync() + "/test.txt";
- let caughtError = false;
// if create turned off, the file won't be created
- try {
+ assertThrows(() => {
Deno.writeFileSync(filename, data, { create: false });
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
// Turn on create, should have no error
Deno.writeFileSync(filename, data, { create: true });
@@ -170,14 +160,9 @@ unitTest(
const data = enc.encode("Hello");
const filename = "/baddir/test.txt";
// The following should fail because /baddir doesn't exist (hopefully).
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.writeFile(filename, data);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
}
);
@@ -188,14 +173,9 @@ unitTest(
const data = enc.encode("Hello");
const filename = "/baddir/test.txt";
// The following should fail due to no write permission
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.writeFile(filename, data);
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);
@@ -220,15 +200,10 @@ unitTest(
const enc = new TextEncoder();
const data = enc.encode("Hello");
const filename = Deno.makeTempDirSync() + "/test.txt";
- let caughtError = false;
// if create turned off, the file won't be created
- try {
+ await assertThrowsAsync(async () => {
await Deno.writeFile(filename, data, { create: false });
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
// Turn on create, should have no error
await Deno.writeFile(filename, data, { create: true });
diff --git a/cli/tests/unit/write_text_file_test.ts b/cli/tests/unit/write_text_file_test.ts
index d72fa722e..fcc8ba728 100644
--- a/cli/tests/unit/write_text_file_test.ts
+++ b/cli/tests/unit/write_text_file_test.ts
@@ -1,4 +1,9 @@
-import { unitTest, assert, assertEquals } from "./test_util.ts";
+import {
+ unitTest,
+ assertEquals,
+ assertThrows,
+ assertThrowsAsync,
+} from "./test_util.ts";
unitTest(
{ perms: { read: true, write: true } },
@@ -28,27 +33,17 @@ unitTest(
unitTest({ perms: { write: true } }, function writeTextFileSyncFail(): void {
const filename = "/baddir/test.txt";
// The following should fail because /baddir doesn't exist (hopefully).
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.writeTextFileSync(filename, "hello");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
});
unitTest({ perms: { write: false } }, function writeTextFileSyncPerm(): void {
const filename = "/baddir/test.txt";
// The following should fail due to no write permission
- let caughtError = false;
- try {
+ assertThrows(() => {
Deno.writeTextFileSync(filename, "Hello");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
});
unitTest(
@@ -81,14 +76,9 @@ unitTest(
async function writeTextFileNotFound(): Promise<void> {
const filename = "/baddir/test.txt";
// The following should fail because /baddir doesn't exist (hopefully).
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.writeTextFile(filename, "Hello");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.NotFound);
- }
- assert(caughtError);
+ }, Deno.errors.NotFound);
}
);
@@ -97,13 +87,8 @@ unitTest(
async function writeTextFilePerm(): Promise<void> {
const filename = "/baddir/test.txt";
// The following should fail due to no write permission
- let caughtError = false;
- try {
+ await assertThrowsAsync(async () => {
await Deno.writeTextFile(filename, "Hello");
- } catch (e) {
- caughtError = true;
- assert(e instanceof Deno.errors.PermissionDenied);
- }
- assert(caughtError);
+ }, Deno.errors.PermissionDenied);
}
);