diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-02-25 14:33:09 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-25 14:33:09 +1100 |
commit | 097e9c44f4d4c7daae7d8113c391bd24d29e7119 (patch) | |
tree | dd6b8bd34c9e762f42eadc59ebcfcbca7e4faf43 /cli/tests | |
parent | 90e4c5dcde99c5f0a1aaa18c0ad786613174085b (diff) |
feat(runtime): stabilise permissions and add event target capabilities (#9573)
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/061_permissions_request.ts | 9 | ||||
-rw-r--r-- | cli/tests/061_permissions_request.ts.out | 6 | ||||
-rw-r--r-- | cli/tests/062_permissions_request_global.ts | 4 | ||||
-rw-r--r-- | cli/tests/062_permissions_request_global.ts.out | 6 | ||||
-rw-r--r-- | cli/tests/063_permissions_revoke.ts | 4 | ||||
-rw-r--r-- | cli/tests/063_permissions_revoke.ts.out | 6 | ||||
-rw-r--r-- | cli/tests/064_permissions_revoke_global.ts | 4 | ||||
-rw-r--r-- | cli/tests/064_permissions_revoke_global.ts.out | 6 | ||||
-rw-r--r-- | cli/tests/integration_tests.rs | 9 | ||||
-rw-r--r-- | cli/tests/lsp/did_open_notification_unstable.json | 2 | ||||
-rw-r--r-- | cli/tests/unit/permissions_test.ts | 28 |
11 files changed, 56 insertions, 28 deletions
diff --git a/cli/tests/061_permissions_request.ts b/cli/tests/061_permissions_request.ts index 8fdc2c590..c31e7ac42 100644 --- a/cli/tests/061_permissions_request.ts +++ b/cli/tests/061_permissions_request.ts @@ -1,6 +1,9 @@ -const status1 = await Deno.permissions.request({ name: "read", path: "foo" }); -const status2 = await Deno.permissions.query({ name: "read", path: "bar" }); -const status3 = await Deno.permissions.request({ name: "read", path: "bar" }); +const status1 = + (await Deno.permissions.request({ name: "read", path: "foo" })).state; +const status2 = + (await Deno.permissions.query({ name: "read", path: "bar" })).state; +const status3 = + (await Deno.permissions.request({ name: "read", path: "bar" })).state; console.log(status1); console.log(status2); console.log(status3); diff --git a/cli/tests/061_permissions_request.ts.out b/cli/tests/061_permissions_request.ts.out index de058a9a3..362425876 100644 --- a/cli/tests/061_permissions_request.ts.out +++ b/cli/tests/061_permissions_request.ts.out @@ -1,3 +1,3 @@ -[WILDCARD]PermissionStatus { state: "granted" } -PermissionStatus { state: "prompt" } -PermissionStatus { state: "denied" } +[WILDCARD]granted +prompt +denied diff --git a/cli/tests/062_permissions_request_global.ts b/cli/tests/062_permissions_request_global.ts index 4ed98ff64..e431bc31b 100644 --- a/cli/tests/062_permissions_request_global.ts +++ b/cli/tests/062_permissions_request_global.ts @@ -1,6 +1,6 @@ const status1 = await Deno.permissions.request({ name: "read" }); -const status2 = await Deno.permissions.query({ name: "read", path: "foo" }); -const status3 = await Deno.permissions.query({ name: "read", path: "bar" }); console.log(status1); +const status2 = await Deno.permissions.query({ name: "read", path: "foo" }); console.log(status2); +const status3 = await Deno.permissions.query({ name: "read", path: "bar" }); console.log(status3); diff --git a/cli/tests/062_permissions_request_global.ts.out b/cli/tests/062_permissions_request_global.ts.out index 69b5ee50d..57b5aa7d8 100644 --- a/cli/tests/062_permissions_request_global.ts.out +++ b/cli/tests/062_permissions_request_global.ts.out @@ -1,3 +1,3 @@ -[WILDCARD]PermissionStatus { state: "granted" } -PermissionStatus { state: "granted" } -PermissionStatus { state: "granted" } +[WILDCARD]PermissionStatus { state: "granted", onchange: null } +PermissionStatus { state: "granted", onchange: null } +PermissionStatus { state: "granted", onchange: null } diff --git a/cli/tests/063_permissions_revoke.ts b/cli/tests/063_permissions_revoke.ts index e61883693..a81eee7cb 100644 --- a/cli/tests/063_permissions_revoke.ts +++ b/cli/tests/063_permissions_revoke.ts @@ -1,6 +1,6 @@ const status1 = await Deno.permissions.revoke({ name: "read", path: "foo" }); -const status2 = await Deno.permissions.query({ name: "read", path: "bar" }); -const status3 = await Deno.permissions.revoke({ name: "read", path: "bar" }); console.log(status1); +const status2 = await Deno.permissions.query({ name: "read", path: "bar" }); console.log(status2); +const status3 = await Deno.permissions.revoke({ name: "read", path: "bar" }); console.log(status3); diff --git a/cli/tests/063_permissions_revoke.ts.out b/cli/tests/063_permissions_revoke.ts.out index 803893e9c..bbd64c557 100644 --- a/cli/tests/063_permissions_revoke.ts.out +++ b/cli/tests/063_permissions_revoke.ts.out @@ -1,3 +1,3 @@ -[WILDCARD]PermissionStatus { state: "prompt" } -PermissionStatus { state: "granted" } -PermissionStatus { state: "prompt" } +[WILDCARD]PermissionStatus { state: "prompt", onchange: null } +PermissionStatus { state: "granted", onchange: null } +PermissionStatus { state: "prompt", onchange: null } diff --git a/cli/tests/064_permissions_revoke_global.ts b/cli/tests/064_permissions_revoke_global.ts index efe74b828..a9b1fcd40 100644 --- a/cli/tests/064_permissions_revoke_global.ts +++ b/cli/tests/064_permissions_revoke_global.ts @@ -1,6 +1,6 @@ const status1 = await Deno.permissions.revoke({ name: "read" }); -const status2 = await Deno.permissions.query({ name: "read", path: "foo" }); -const status3 = await Deno.permissions.query({ name: "read", path: "bar" }); console.log(status1); +const status2 = await Deno.permissions.query({ name: "read", path: "foo" }); console.log(status2); +const status3 = await Deno.permissions.query({ name: "read", path: "bar" }); console.log(status3); diff --git a/cli/tests/064_permissions_revoke_global.ts.out b/cli/tests/064_permissions_revoke_global.ts.out index a2ea05cb7..f7e389a76 100644 --- a/cli/tests/064_permissions_revoke_global.ts.out +++ b/cli/tests/064_permissions_revoke_global.ts.out @@ -1,3 +1,3 @@ -[WILDCARD]PermissionStatus { state: "prompt" } -PermissionStatus { state: "prompt" } -PermissionStatus { state: "prompt" } +[WILDCARD]PermissionStatus { state: "prompt", onchange: null } +PermissionStatus { state: "prompt", onchange: null } +PermissionStatus { state: "prompt", onchange: null } diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs index f9f458016..497028cd1 100644 --- a/cli/tests/integration_tests.rs +++ b/cli/tests/integration_tests.rs @@ -2677,7 +2677,7 @@ console.log("finish"); #[cfg(unix)] #[test] fn _061_permissions_request() { - let args = "run --unstable 061_permissions_request.ts"; + let args = "run 061_permissions_request.ts"; let output = "061_permissions_request.ts.out"; let input = b"g\nd\n"; @@ -2687,7 +2687,7 @@ console.log("finish"); #[cfg(unix)] #[test] fn _062_permissions_request_global() { - let args = "run --unstable 062_permissions_request_global.ts"; + let args = "run 062_permissions_request_global.ts"; let output = "062_permissions_request_global.ts.out"; let input = b"g\n"; @@ -2695,13 +2695,12 @@ console.log("finish"); } itest!(_063_permissions_revoke { - args: "run --unstable --allow-read=foo,bar 063_permissions_revoke.ts", + args: "run --allow-read=foo,bar 063_permissions_revoke.ts", output: "063_permissions_revoke.ts.out", }); itest!(_064_permissions_revoke_global { - args: - "run --unstable --allow-read=foo,bar 064_permissions_revoke_global.ts", + args: "run --allow-read=foo,bar 064_permissions_revoke_global.ts", output: "064_permissions_revoke_global.ts.out", }); diff --git a/cli/tests/lsp/did_open_notification_unstable.json b/cli/tests/lsp/did_open_notification_unstable.json index 583eafdef..bb7a1f679 100644 --- a/cli/tests/lsp/did_open_notification_unstable.json +++ b/cli/tests/lsp/did_open_notification_unstable.json @@ -6,7 +6,7 @@ "uri": "file:///a/file.ts", "languageId": "typescript", "version": 1, - "text": "console.log(Deno.permissions);\n" + "text": "console.log(Deno.openPlugin);\n" } } } diff --git a/cli/tests/unit/permissions_test.ts b/cli/tests/unit/permissions_test.ts index 2dcb67abf..8a6d7e9aa 100644 --- a/cli/tests/unit/permissions_test.ts +++ b/cli/tests/unit/permissions_test.ts @@ -1,5 +1,6 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. import { + assert, assertEquals, assertThrows, assertThrowsAsync, @@ -10,7 +11,7 @@ unitTest(async function permissionInvalidName(): Promise<void> { await assertThrowsAsync(async () => { // deno-lint-ignore no-explicit-any await Deno.permissions.query({ name: "foo" as any }); - }, Error); + }, TypeError); }); unitTest(async function permissionNetInvalidHost(): Promise<void> { @@ -19,8 +20,33 @@ unitTest(async function permissionNetInvalidHost(): Promise<void> { }, URIError); }); +unitTest(async function permissionQueryReturnsEventTarget() { + const status = await Deno.permissions.query({ name: "hrtime" }); + assert(["granted", "denied", "prompt"].includes(status.state)); + let called = false; + status.addEventListener("change", () => { + called = true; + }); + status.dispatchEvent(new Event("change")); + assert(called); + assert(status === (await Deno.permissions.query({ name: "hrtime" }))); +}); + +unitTest(async function permissionQueryForReadReturnsSameStatus() { + const status1 = await Deno.permissions.query({ + name: "read", + path: ".", + }); + const status2 = await Deno.permissions.query({ + name: "read", + path: ".", + }); + assert(status1 === status2); +}); + unitTest(function permissionsIllegalConstructor() { assertThrows(() => new Deno.Permissions(), TypeError, "Illegal constructor."); + assertEquals(Deno.Permissions.length, 0); }); unitTest(function permissionStatusIllegalConstructor() { |