summaryrefslogtreecommitdiff
path: root/cli/tests/unit/permissions_test.ts
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2020-07-09 19:00:18 +1000
committerGitHub <noreply@github.com>2020-07-09 05:00:18 -0400
commit202e7fa6ad366ee56a6d070e94eaecb6dbc745bf (patch)
tree745481e627ff691e0c196c18c310e54a8794badf /cli/tests/unit/permissions_test.ts
parente92cf5b9e8530f7edf5cb7b157e6334a013da10d (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.ts53
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);
});