summaryrefslogtreecommitdiff
path: root/cli/tests/unit/worker_permissions_test.ts
blob: 145862402a92b0f3bf913175b51447ea7c69e2f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
import { assertEquals, deferred } from "./test_util.ts";

Deno.test(
  { 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]);
    }
  },
);