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.ts28
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() {