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/unit/permissions_test.ts | |
parent | 90e4c5dcde99c5f0a1aaa18c0ad786613174085b (diff) |
feat(runtime): stabilise permissions and add event target capabilities (#9573)
Diffstat (limited to 'cli/tests/unit/permissions_test.ts')
-rw-r--r-- | cli/tests/unit/permissions_test.ts | 28 |
1 files changed, 27 insertions, 1 deletions
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() { |