summaryrefslogtreecommitdiff
path: root/tools/permission_prompt_test.ts
blob: a4c9e43626ad3f3690528ea14fd0c94b6da979c2 (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
const { args, listen, env, exit, makeTempDirSync, readFileSync, run } = Deno;

const firstCheckFailedMessage = "First check failed";

const name = args[1];
const test = {
  needsRead: async () => {
    try {
      readFileSync("package.json");
    } catch (e) {
      console.log(firstCheckFailedMessage);
    }
    readFileSync("package.json");
  },
  needsWrite: () => {
    try {
      makeTempDirSync();
    } catch (e) {
      console.log(firstCheckFailedMessage);
    }
    makeTempDirSync();
  },
  needsEnv: () => {
    try {
      env().home;
    } catch (e) {
      console.log(firstCheckFailedMessage);
    }
    env().home;
  },
  needsNet: () => {
    try {
      listen("tcp", "127.0.0.1:4540");
    } catch (e) {
      console.log(firstCheckFailedMessage);
    }
    listen("tcp", "127.0.0.1:4541");
  },
  needsRun: () => {
    try {
      const process = run({
        args: [
          "python",
          "-c",
          "import sys; sys.stdout.write('hello'); sys.stdout.flush()"
        ]
      });
    } catch (e) {
      console.log(firstCheckFailedMessage);
    }
    const process = run({
      args: [
        "python",
        "-c",
        "import sys; sys.stdout.write('hello'); sys.stdout.flush()"
      ]
    });
  }
}[name];

if (!test) {
  console.log("Unknown test:", name);
  exit(1);
}

test();