summaryrefslogtreecommitdiff
path: root/cli/tests/unit/permissions_test.ts
diff options
context:
space:
mode:
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);
});