From 0a96cb62a83f1d881ebc7fd93dee1796d20f17ff Mon Sep 17 00:00:00 2001 From: Colin Ihrig Date: Thu, 19 May 2022 17:45:09 -0400 Subject: 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 --- cli/tests/unit/permissions_test.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'cli') 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', + ); + } + } +}); -- cgit v1.2.3