summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/056_make_temp_file_write_perm.ts13
-rw-r--r--cli/tests/059_fs_relative_path_perm.ts2
-rw-r--r--cli/tests/059_fs_relative_path_perm.ts.out2
-rw-r--r--cli/tests/integration_tests.rs6
-rw-r--r--cli/tests/unit/dir_test.ts37
-rw-r--r--cli/tests/unit/os_test.ts16
6 files changed, 42 insertions, 34 deletions
diff --git a/cli/tests/056_make_temp_file_write_perm.ts b/cli/tests/056_make_temp_file_write_perm.ts
index 15aefaff9..c0deda8a2 100644
--- a/cli/tests/056_make_temp_file_write_perm.ts
+++ b/cli/tests/056_make_temp_file_write_perm.ts
@@ -1,8 +1,9 @@
-const path = await Deno.makeTempFile({ dir: "./subdir/" });
-if (path.startsWith(Deno.cwd())) {
+const path = await Deno.makeTempFile({ dir: `subdir` });
+try {
+ if (!path.match(/^subdir[/\\][^/\\]+/)) {
+ throw Error("bad " + path);
+ }
console.log("good", path);
-} else {
- throw Error("bad " + path);
+} finally {
+ await Deno.remove(path);
}
-console.log(path);
-await Deno.remove(path);
diff --git a/cli/tests/059_fs_relative_path_perm.ts b/cli/tests/059_fs_relative_path_perm.ts
new file mode 100644
index 000000000..26630fe1c
--- /dev/null
+++ b/cli/tests/059_fs_relative_path_perm.ts
@@ -0,0 +1,2 @@
+// The permission error message shouldn't include the CWD.
+Deno.readFileSync("non-existent");
diff --git a/cli/tests/059_fs_relative_path_perm.ts.out b/cli/tests/059_fs_relative_path_perm.ts.out
new file mode 100644
index 000000000..83df41903
--- /dev/null
+++ b/cli/tests/059_fs_relative_path_perm.ts.out
@@ -0,0 +1,2 @@
+[WILDCARD]error: Uncaught PermissionDenied: read access to "non-existent", run again with the --allow-read flag
+ at [WILDCARD]
diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs
index 653f5a008..0a50190d2 100644
--- a/cli/tests/integration_tests.rs
+++ b/cli/tests/integration_tests.rs
@@ -1326,6 +1326,12 @@ itest!(_058_tasks_microtasks_close {
output: "058_tasks_microtasks_close.ts.out",
});
+itest!(_059_fs_relative_path_perm {
+ args: "run 059_fs_relative_path_perm.ts",
+ output: "059_fs_relative_path_perm.ts.out",
+ exit_code: 1,
+});
+
itest!(js_import_detect {
args: "run --quiet --reload js_import_detect.ts",
output: "js_import_detect.ts.out",
diff --git a/cli/tests/unit/dir_test.ts b/cli/tests/unit/dir_test.ts
index dc05d9564..5b60b3dba 100644
--- a/cli/tests/unit/dir_test.ts
+++ b/cli/tests/unit/dir_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 } }, function dirCwdNotNull(): void {
assert(Deno.cwd() != null);
@@ -29,32 +29,31 @@ unitTest({ perms: { read: true, write: true } }, function dirCwdError(): void {
Deno.chdir(path);
Deno.removeSync(path);
try {
- Deno.cwd();
- throw Error("current directory removed, should throw error");
- } catch (err) {
- if (err instanceof Deno.errors.NotFound) {
- assert(err.name === "NotFound");
- } else {
- throw Error("raised different exception");
- }
+ assertThrows(() => {
+ Deno.cwd();
+ }, Deno.errors.NotFound);
+ } finally {
+ Deno.chdir(initialdir);
}
- Deno.chdir(initialdir);
}
});
+unitTest({ perms: { read: false } }, function dirCwdPermError(): void {
+ assertThrows(
+ () => {
+ Deno.cwd();
+ },
+ Deno.errors.PermissionDenied,
+ "read access to <CWD>, run again with the --allow-read flag"
+ );
+});
+
unitTest(
{ perms: { read: true, write: true } },
function dirChdirError(): void {
const path = Deno.makeTempDirSync() + "test";
- try {
+ assertThrows(() => {
Deno.chdir(path);
- throw Error("directory not available, should throw error");
- } catch (err) {
- if (err instanceof Deno.errors.NotFound) {
- assert(err.name === "NotFound");
- } else {
- throw Error("raised different exception");
- }
- }
+ }, Deno.errors.NotFound);
}
);
diff --git a/cli/tests/unit/os_test.ts b/cli/tests/unit/os_test.ts
index e99002534..72c88b0e1 100644
--- a/cli/tests/unit/os_test.ts
+++ b/cli/tests/unit/os_test.ts
@@ -277,15 +277,13 @@ unitTest({ perms: { read: true } }, function execPath(): void {
});
unitTest({ perms: { read: false } }, function execPathPerm(): void {
- let caughtError = false;
- try {
- Deno.execPath();
- } catch (err) {
- caughtError = true;
- assert(err instanceof Deno.errors.PermissionDenied);
- assertEquals(err.name, "PermissionDenied");
- }
- assert(caughtError);
+ assertThrows(
+ () => {
+ Deno.execPath();
+ },
+ Deno.errors.PermissionDenied,
+ "read access to <exec_path>, run again with the --allow-read flag"
+ );
});
unitTest({ perms: { env: true } }, function loadavgSuccess(): void {