summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorColin Ihrig <cjihrig@gmail.com>2022-05-19 17:45:09 -0400
committerGitHub <noreply@github.com>2022-05-19 17:45:09 -0400
commit0a96cb62a83f1d881ebc7fd93dee1796d20f17ff (patch)
treeb474b9c3f533f6e1eef7b28e273d36b920545c20 /cli
parent4daf1bb81ad95652becb16f555efc48a2693cd74 (diff)
fix(runtime): improve permission descriptor validation (#14676)
This commit improves the permission descriptor validation by explicitly checking for object types and using optional chaining when creating error messages in case the descriptor is not an object. Fixes: https://github.com/denoland/deno/issues/14675
Diffstat (limited to 'cli')
-rw-r--r--cli/tests/unit/permissions_test.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/cli/tests/unit/permissions_test.ts b/cli/tests/unit/permissions_test.ts
index 006bad249..458ef2f28 100644
--- a/cli/tests/unit/permissions_test.ts
+++ b/cli/tests/unit/permissions_test.ts
@@ -71,3 +71,18 @@ Deno.test(async function permissionURL() {
command: new URL(".", import.meta.url),
});
});
+
+Deno.test(async function permissionDescriptorValidation() {
+ for (const value of [undefined, null, {}]) {
+ for (const method of ["query", "request", "revoke"]) {
+ await assertRejects(
+ async () => {
+ // deno-lint-ignore no-explicit-any
+ await (Deno.permissions as any)[method](value as any);
+ },
+ TypeError,
+ '"undefined" is not a valid permission name',
+ );
+ }
+ }
+});