diff options
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() { |