summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2021-02-25 14:33:09 +1100
committerGitHub <noreply@github.com>2021-02-25 14:33:09 +1100
commit097e9c44f4d4c7daae7d8113c391bd24d29e7119 (patch)
treedd6b8bd34c9e762f42eadc59ebcfcbca7e4faf43 /cli/tests
parent90e4c5dcde99c5f0a1aaa18c0ad786613174085b (diff)
feat(runtime): stabilise permissions and add event target capabilities (#9573)
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/061_permissions_request.ts9
-rw-r--r--cli/tests/061_permissions_request.ts.out6
-rw-r--r--cli/tests/062_permissions_request_global.ts4
-rw-r--r--cli/tests/062_permissions_request_global.ts.out6
-rw-r--r--cli/tests/063_permissions_revoke.ts4
-rw-r--r--cli/tests/063_permissions_revoke.ts.out6
-rw-r--r--cli/tests/064_permissions_revoke_global.ts4
-rw-r--r--cli/tests/064_permissions_revoke_global.ts.out6
-rw-r--r--cli/tests/integration_tests.rs9
-rw-r--r--cli/tests/lsp/did_open_notification_unstable.json2
-rw-r--r--cli/tests/unit/permissions_test.ts28
11 files changed, 56 insertions, 28 deletions
diff --git a/cli/tests/061_permissions_request.ts b/cli/tests/061_permissions_request.ts
index 8fdc2c590..c31e7ac42 100644
--- a/cli/tests/061_permissions_request.ts
+++ b/cli/tests/061_permissions_request.ts
@@ -1,6 +1,9 @@
-const status1 = await Deno.permissions.request({ name: "read", path: "foo" });
-const status2 = await Deno.permissions.query({ name: "read", path: "bar" });
-const status3 = await Deno.permissions.request({ name: "read", path: "bar" });
+const status1 =
+ (await Deno.permissions.request({ name: "read", path: "foo" })).state;
+const status2 =
+ (await Deno.permissions.query({ name: "read", path: "bar" })).state;
+const status3 =
+ (await Deno.permissions.request({ name: "read", path: "bar" })).state;
console.log(status1);
console.log(status2);
console.log(status3);
diff --git a/cli/tests/061_permissions_request.ts.out b/cli/tests/061_permissions_request.ts.out
index de058a9a3..362425876 100644
--- a/cli/tests/061_permissions_request.ts.out
+++ b/cli/tests/061_permissions_request.ts.out
@@ -1,3 +1,3 @@
-[WILDCARD]PermissionStatus { state: "granted" }
-PermissionStatus { state: "prompt" }
-PermissionStatus { state: "denied" }
+[WILDCARD]granted
+prompt
+denied
diff --git a/cli/tests/062_permissions_request_global.ts b/cli/tests/062_permissions_request_global.ts
index 4ed98ff64..e431bc31b 100644
--- a/cli/tests/062_permissions_request_global.ts
+++ b/cli/tests/062_permissions_request_global.ts
@@ -1,6 +1,6 @@
const status1 = await Deno.permissions.request({ name: "read" });
-const status2 = await Deno.permissions.query({ name: "read", path: "foo" });
-const status3 = await Deno.permissions.query({ name: "read", path: "bar" });
console.log(status1);
+const status2 = await Deno.permissions.query({ name: "read", path: "foo" });
console.log(status2);
+const status3 = await Deno.permissions.query({ name: "read", path: "bar" });
console.log(status3);
diff --git a/cli/tests/062_permissions_request_global.ts.out b/cli/tests/062_permissions_request_global.ts.out
index 69b5ee50d..57b5aa7d8 100644
--- a/cli/tests/062_permissions_request_global.ts.out
+++ b/cli/tests/062_permissions_request_global.ts.out
@@ -1,3 +1,3 @@
-[WILDCARD]PermissionStatus { state: "granted" }
-PermissionStatus { state: "granted" }
-PermissionStatus { state: "granted" }
+[WILDCARD]PermissionStatus { state: "granted", onchange: null }
+PermissionStatus { state: "granted", onchange: null }
+PermissionStatus { state: "granted", onchange: null }
diff --git a/cli/tests/063_permissions_revoke.ts b/cli/tests/063_permissions_revoke.ts
index e61883693..a81eee7cb 100644
--- a/cli/tests/063_permissions_revoke.ts
+++ b/cli/tests/063_permissions_revoke.ts
@@ -1,6 +1,6 @@
const status1 = await Deno.permissions.revoke({ name: "read", path: "foo" });
-const status2 = await Deno.permissions.query({ name: "read", path: "bar" });
-const status3 = await Deno.permissions.revoke({ name: "read", path: "bar" });
console.log(status1);
+const status2 = await Deno.permissions.query({ name: "read", path: "bar" });
console.log(status2);
+const status3 = await Deno.permissions.revoke({ name: "read", path: "bar" });
console.log(status3);
diff --git a/cli/tests/063_permissions_revoke.ts.out b/cli/tests/063_permissions_revoke.ts.out
index 803893e9c..bbd64c557 100644
--- a/cli/tests/063_permissions_revoke.ts.out
+++ b/cli/tests/063_permissions_revoke.ts.out
@@ -1,3 +1,3 @@
-[WILDCARD]PermissionStatus { state: "prompt" }
-PermissionStatus { state: "granted" }
-PermissionStatus { state: "prompt" }
+[WILDCARD]PermissionStatus { state: "prompt", onchange: null }
+PermissionStatus { state: "granted", onchange: null }
+PermissionStatus { state: "prompt", onchange: null }
diff --git a/cli/tests/064_permissions_revoke_global.ts b/cli/tests/064_permissions_revoke_global.ts
index efe74b828..a9b1fcd40 100644
--- a/cli/tests/064_permissions_revoke_global.ts
+++ b/cli/tests/064_permissions_revoke_global.ts
@@ -1,6 +1,6 @@
const status1 = await Deno.permissions.revoke({ name: "read" });
-const status2 = await Deno.permissions.query({ name: "read", path: "foo" });
-const status3 = await Deno.permissions.query({ name: "read", path: "bar" });
console.log(status1);
+const status2 = await Deno.permissions.query({ name: "read", path: "foo" });
console.log(status2);
+const status3 = await Deno.permissions.query({ name: "read", path: "bar" });
console.log(status3);
diff --git a/cli/tests/064_permissions_revoke_global.ts.out b/cli/tests/064_permissions_revoke_global.ts.out
index a2ea05cb7..f7e389a76 100644
--- a/cli/tests/064_permissions_revoke_global.ts.out
+++ b/cli/tests/064_permissions_revoke_global.ts.out
@@ -1,3 +1,3 @@
-[WILDCARD]PermissionStatus { state: "prompt" }
-PermissionStatus { state: "prompt" }
-PermissionStatus { state: "prompt" }
+[WILDCARD]PermissionStatus { state: "prompt", onchange: null }
+PermissionStatus { state: "prompt", onchange: null }
+PermissionStatus { state: "prompt", onchange: null }
diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs
index f9f458016..497028cd1 100644
--- a/cli/tests/integration_tests.rs
+++ b/cli/tests/integration_tests.rs
@@ -2677,7 +2677,7 @@ console.log("finish");
#[cfg(unix)]
#[test]
fn _061_permissions_request() {
- let args = "run --unstable 061_permissions_request.ts";
+ let args = "run 061_permissions_request.ts";
let output = "061_permissions_request.ts.out";
let input = b"g\nd\n";
@@ -2687,7 +2687,7 @@ console.log("finish");
#[cfg(unix)]
#[test]
fn _062_permissions_request_global() {
- let args = "run --unstable 062_permissions_request_global.ts";
+ let args = "run 062_permissions_request_global.ts";
let output = "062_permissions_request_global.ts.out";
let input = b"g\n";
@@ -2695,13 +2695,12 @@ console.log("finish");
}
itest!(_063_permissions_revoke {
- args: "run --unstable --allow-read=foo,bar 063_permissions_revoke.ts",
+ args: "run --allow-read=foo,bar 063_permissions_revoke.ts",
output: "063_permissions_revoke.ts.out",
});
itest!(_064_permissions_revoke_global {
- args:
- "run --unstable --allow-read=foo,bar 064_permissions_revoke_global.ts",
+ args: "run --allow-read=foo,bar 064_permissions_revoke_global.ts",
output: "064_permissions_revoke_global.ts.out",
});
diff --git a/cli/tests/lsp/did_open_notification_unstable.json b/cli/tests/lsp/did_open_notification_unstable.json
index 583eafdef..bb7a1f679 100644
--- a/cli/tests/lsp/did_open_notification_unstable.json
+++ b/cli/tests/lsp/did_open_notification_unstable.json
@@ -6,7 +6,7 @@
"uri": "file:///a/file.ts",
"languageId": "typescript",
"version": 1,
- "text": "console.log(Deno.permissions);\n"
+ "text": "console.log(Deno.openPlugin);\n"
}
}
}
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() {