diff options
Diffstat (limited to 'cli/tests/unit/permissions_test.ts')
-rw-r--r-- | cli/tests/unit/permissions_test.ts | 53 |
1 files changed, 33 insertions, 20 deletions
diff --git a/cli/tests/unit/permissions_test.ts b/cli/tests/unit/permissions_test.ts index 7528768a1..0de6a774b 100644 --- a/cli/tests/unit/permissions_test.ts +++ b/cli/tests/unit/permissions_test.ts @@ -1,27 +1,40 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. -import { unitTest, assert } from "./test_util.ts"; + +import { unitTest, assert, assertThrowsAsync } from "./test_util.ts"; unitTest(async function permissionInvalidName(): Promise<void> { - let thrown = false; - try { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - await Deno.permissions.query({ name: "foo" as any }); - } catch (e) { - thrown = true; - assert(e instanceof Error); - } finally { - assert(thrown); - } + await assertThrowsAsync(async () => { + // @ts-expect-error name should not accept "foo" + await navigator.permissions.query({ name: "foo" }); + }, TypeError); }); unitTest(async function permissionNetInvalidUrl(): Promise<void> { - let thrown = false; - try { - await Deno.permissions.query({ name: "net", url: ":" }); - } catch (e) { - thrown = true; - assert(e instanceof URIError); - } finally { - assert(thrown); - } + await assertThrowsAsync(async () => { + await navigator.permissions.query({ name: "net", url: ":" }); + }, URIError); +}); + +unitTest(async function permissionQueryReturnsEventTarget(): Promise<void> { + const status = await navigator.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 navigator.permissions.query({ name: "hrtime" }))); +}); + +unitTest(async function permissionQueryForReadReturnsSameStatus() { + const status1 = await navigator.permissions.query({ + name: "read", + path: ".", + }); + const status2 = await navigator.permissions.query({ + name: "read", + path: ".", + }); + assert(status1 === status2); }); |