summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/testdata/workers/env_read_check_worker.js14
-rw-r--r--cli/tests/unit/worker_permissions_test.ts43
-rw-r--r--cli/tests/unit/worker_types.ts2
3 files changed, 58 insertions, 1 deletions
diff --git a/cli/tests/testdata/workers/env_read_check_worker.js b/cli/tests/testdata/workers/env_read_check_worker.js
new file mode 100644
index 000000000..72ad31df2
--- /dev/null
+++ b/cli/tests/testdata/workers/env_read_check_worker.js
@@ -0,0 +1,14 @@
+onmessage = async ({ data }) => {
+ const permissions = [];
+ for (const name of data.names) {
+ const { state } = await Deno.permissions.query({
+ name: "env",
+ variable: name,
+ });
+ permissions.push(state === "granted");
+ }
+
+ postMessage({
+ permissions,
+ });
+};
diff --git a/cli/tests/unit/worker_permissions_test.ts b/cli/tests/unit/worker_permissions_test.ts
new file mode 100644
index 000000000..35cb2d04d
--- /dev/null
+++ b/cli/tests/unit/worker_permissions_test.ts
@@ -0,0 +1,43 @@
+// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
+import { assertEquals, deferred, unitTest } from "./test_util.ts";
+
+unitTest(
+ { permissions: { env: true, read: true } },
+ async function workerEnvArrayPermissions() {
+ const promise = deferred<boolean[]>();
+
+ const worker = new Worker(
+ new URL(
+ "../testdata/workers/env_read_check_worker.js",
+ import.meta.url,
+ ).href,
+ {
+ type: "module",
+ deno: {
+ namespace: true,
+ permissions: {
+ env: ["test", "OTHER"],
+ },
+ },
+ },
+ );
+
+ worker.onmessage = ({ data }) => {
+ promise.resolve(data.permissions);
+ };
+
+ worker.postMessage({
+ names: ["test", "TEST", "asdf", "OTHER"],
+ });
+
+ const permissions = await promise;
+ worker.terminate();
+
+ if (Deno.build.os === "windows") {
+ // windows ignores case
+ assertEquals(permissions, [true, true, false, true]);
+ } else {
+ assertEquals(permissions, [true, false, false, true]);
+ }
+ },
+);
diff --git a/cli/tests/unit/worker_types.ts b/cli/tests/unit/worker_types.ts
index 0fd2c3248..0f99e15df 100644
--- a/cli/tests/unit/worker_types.ts
+++ b/cli/tests/unit/worker_types.ts
@@ -5,7 +5,7 @@ unitTest(
{ permissions: { read: true } },
function utimeSyncFileSuccess() {
const w = new Worker(
- new URL("../workers/worker_types.ts", import.meta.url).href,
+ new URL("../testdata/workers/worker_types.ts", import.meta.url).href,
{ type: "module" },
);
assert(w);