diff options
Diffstat (limited to 'cli/tests/testdata/workers')
| -rw-r--r-- | cli/tests/testdata/workers/permission_echo.js | 19 | ||||
| -rw-r--r-- | cli/tests/testdata/workers/test.ts | 62 |
2 files changed, 81 insertions, 0 deletions
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( () => |
