From 1b001d1b180535ce247b5ebd9d38435384ddf787 Mon Sep 17 00:00:00 2001 From: Asher Gomez Date: Wed, 4 Jan 2023 07:50:14 +1100 Subject: fix(permissions): process `URL` in `Deno.FfiPermissionDescriptor.path` for `revoke()` and `request()` (#17094) Previously, `Deno.permissions.[revoke|request]()` wouldn't correctly process the `path: URL` when `name` was `ffi`. This change fixes that behaviour and adds a new function, `formDescriptor()`, to ensure `URL` arguments are consistently handled across `Deno.permissions.[query|revoke|request]()`. --- cli/tests/unit/permissions_test.ts | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'cli') diff --git a/cli/tests/unit/permissions_test.ts b/cli/tests/unit/permissions_test.ts index 9f9b605f9..193e60689 100644 --- a/cli/tests/unit/permissions_test.ts +++ b/cli/tests/unit/permissions_test.ts @@ -75,19 +75,14 @@ Deno.test(function permissionStatusIllegalConstructor() { assertEquals(Deno.PermissionStatus.length, 0); }); +// Regression test for https://github.com/denoland/deno/issues/17020 Deno.test(async function permissionURL() { - await Deno.permissions.query({ - name: "read", - path: new URL(".", import.meta.url), - }); - await Deno.permissions.query({ - name: "write", - path: new URL(".", import.meta.url), - }); - await Deno.permissions.query({ - name: "run", - command: new URL(".", import.meta.url), - }); + const path = new URL(".", import.meta.url); + + await Deno.permissions.query({ name: "read", path }); + await Deno.permissions.query({ name: "write", path }); + await Deno.permissions.query({ name: "ffi", path }); + await Deno.permissions.query({ name: "run", command: path }); }); Deno.test(async function permissionDescriptorValidation() { -- cgit v1.2.3