diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-07-09 19:00:18 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-09 05:00:18 -0400 |
commit | 202e7fa6ad366ee56a6d070e94eaecb6dbc745bf (patch) | |
tree | 745481e627ff691e0c196c18c310e54a8794badf /cli/tests/unit/permissions_test.ts | |
parent | e92cf5b9e8530f7edf5cb7b157e6334a013da10d (diff) |
feat: move unstable Deno.permissions to navigator.permissions (#6244)
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); }); |