summaryrefslogtreecommitdiff
path: root/cli/tests/testdata
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/testdata')
-rw-r--r--cli/tests/testdata/bench/allow_all.ts16
-rw-r--r--cli/tests/testdata/test/allow_all.ts16
-rw-r--r--cli/tests/testdata/workers/permission_echo.js19
-rw-r--r--cli/tests/testdata/workers/test.ts62
4 files changed, 105 insertions, 8 deletions
diff --git a/cli/tests/testdata/bench/allow_all.ts b/cli/tests/testdata/bench/allow_all.ts
index 110e4621f..d7dde3a85 100644
--- a/cli/tests/testdata/bench/allow_all.ts
+++ b/cli/tests/testdata/bench/allow_all.ts
@@ -17,8 +17,10 @@ for (const name of permissions) {
[name]: false,
},
async fn() {
- const status = await Deno.permissions.query({ name });
- assertEquals(status.state, "prompt");
+ for await (const n of permissions) {
+ const status = await Deno.permissions.query({ name: n });
+ assertEquals(status.state, "prompt");
+ }
},
});
@@ -28,8 +30,14 @@ for (const name of permissions) {
[name]: true,
},
async fn() {
- const status = await Deno.permissions.query({ name });
- assertEquals(status.state, "granted");
+ for await (const n of permissions) {
+ const status = await Deno.permissions.query({ name: n });
+ if (n === name) {
+ assertEquals(status.state, "granted");
+ } else {
+ assertEquals(status.state, "prompt");
+ }
+ }
},
});
}
diff --git a/cli/tests/testdata/test/allow_all.ts b/cli/tests/testdata/test/allow_all.ts
index e70ac46b0..c7a238130 100644
--- a/cli/tests/testdata/test/allow_all.ts
+++ b/cli/tests/testdata/test/allow_all.ts
@@ -17,8 +17,10 @@ for (const name of permissions) {
[name]: false,
},
async fn() {
- const status = await Deno.permissions.query({ name });
- assertEquals(status.state, "prompt");
+ for await (const n of permissions) {
+ const status = await Deno.permissions.query({ name: n });
+ assertEquals(status.state, "prompt");
+ }
},
});
@@ -28,8 +30,14 @@ for (const name of permissions) {
[name]: true,
},
async fn() {
- const status = await Deno.permissions.query({ name });
- assertEquals(status.state, "granted");
+ for await (const n of permissions) {
+ const status = await Deno.permissions.query({ name: n });
+ if (n === name) {
+ assertEquals(status.state, "granted");
+ } else {
+ assertEquals(status.state, "prompt");
+ }
+ }
},
});
}
diff --git a/cli/tests/testdata/workers/permission_echo.js b/cli/tests/testdata/workers/permission_echo.js
new file mode 100644
index 000000000..f492a25f2
--- /dev/null
+++ b/cli/tests/testdata/workers/permission_echo.js
@@ -0,0 +1,19 @@
+self.onmessage = async () => {
+ const env = await Deno.permissions.query({ name: "env" });
+ const ffi = await Deno.permissions.query({ name: "ffi" });
+ const hrtime = await Deno.permissions.query({ name: "hrtime" });
+ const net = await Deno.permissions.query({ name: "net" });
+ const read = await Deno.permissions.query({ name: "read" });
+ const run = await Deno.permissions.query({ name: "run" });
+ const write = await Deno.permissions.query({ name: "write" });
+ self.postMessage({
+ env: env.state,
+ ffi: ffi.state,
+ hrtime: hrtime.state,
+ net: net.state,
+ read: read.state,
+ run: run.state,
+ write: write.state,
+ });
+ self.close();
+};
diff --git a/cli/tests/testdata/workers/test.ts b/cli/tests/testdata/workers/test.ts
index b9204adee..d75ca499b 100644
--- a/cli/tests/testdata/workers/test.ts
+++ b/cli/tests/testdata/workers/test.ts
@@ -584,6 +584,68 @@ Deno.test("Worker with disabled permissions", async function () {
worker.terminate();
});
+Deno.test("Worker permissions are not inherited with empty permission object", async function () {
+ const worker = new Worker(
+ new URL("./permission_echo.js", import.meta.url).href,
+ {
+ type: "module",
+ deno: {
+ namespace: true,
+ permissions: {},
+ },
+ },
+ );
+
+ const promise = deferred();
+ worker.onmessage = (e) => {
+ promise.resolve(e.data);
+ };
+
+ worker.postMessage(null);
+ assertEquals(await promise, {
+ env: "prompt",
+ hrtime: "prompt",
+ net: "prompt",
+ ffi: "prompt",
+ read: "prompt",
+ run: "prompt",
+ write: "prompt",
+ });
+ worker.terminate();
+});
+
+Deno.test("Worker permissions are not inherited with single specified permission", async function () {
+ const worker = new Worker(
+ new URL("./permission_echo.js", import.meta.url).href,
+ {
+ type: "module",
+ deno: {
+ namespace: true,
+ permissions: {
+ net: true,
+ },
+ },
+ },
+ );
+
+ const promise = deferred();
+ worker.onmessage = (e) => {
+ promise.resolve(e.data);
+ };
+
+ worker.postMessage(null);
+ assertEquals(await promise, {
+ env: "prompt",
+ hrtime: "prompt",
+ net: "granted",
+ ffi: "prompt",
+ read: "prompt",
+ run: "prompt",
+ write: "prompt",
+ });
+ worker.terminate();
+});
+
Deno.test("Worker with invalid permission arg", function () {
assertThrows(
() =>