-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcli.test.ts
More file actions
106 lines (93 loc) · 2.26 KB
/
cli.test.ts
File metadata and controls
106 lines (93 loc) · 2.26 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import {
assertEquals,
assertNotEquals,
assertStringIncludes,
delay,
} from "./deps_test.ts";
Deno.test("killing by pid", async () => {
// create test process
const command = new Deno.Command("sleep", {
args: [
"5000",
],
});
const pTest = command.spawn();
await delay(100);
const pKill = new Deno.Command(Deno.execPath(), {
args: [
"run",
"-A",
"./cli.ts",
`${pTest.pid}`,
],
});
const { code } = await pKill.output();
// retreive status from test pid
const status = await pTest.status;
// ensure dkill existed cleanly
assertEquals(code, 0);
assertNotEquals(status.code, 0);
});
Deno.test({
name: "killing by ports",
fn: async () => {
// create 2 webservers
const pTest1Cmd = new Deno.Command(Deno.execPath(), {
args: [
"run",
"-A",
"./src/tests/utils.ts",
],
});
const pTest2Cmd = new Deno.Command(Deno.execPath(), {
args: [
"run",
"-A",
"./src/tests/utils.ts",
"8081",
],
});
const pTest1 = pTest1Cmd.spawn();
const pTest2 = pTest2Cmd.spawn();
// give time fo the webserver to start and the port be discoverable
await delay(5000);
// call dkill
const pDkillCmd = new Deno.Command(Deno.execPath(), {
args: [
"run",
"-A",
"./cli.ts",
"--verbose",
":8080",
":8081",
],
});
// wait dkill finishes
const { code } = await pDkillCmd.output();
// ensure dkill exited cleanly
assertEquals(code, 0);
// retrieve status from test pid
const status1 = await pTest1.status;
const status2 = await pTest2.status;
assertNotEquals(status1.code, 0);
assertNotEquals(status1.code, 5); // check it wasn't a timeout
assertNotEquals(status2.code, 0);
assertNotEquals(status2.code, 5);
},
});
Deno.test("Invalid ports", async () => {
// call dkill
const pDkillCmd = new Deno.Command(Deno.execPath(), {
args: [
"run",
"-A",
"./cli.ts",
":8080",
],
});
// wait dkill finishes
const { code, stdout } = await pDkillCmd.output();
// ensure dkill exited cleanly
assertEquals(code, 0);
assertStringIncludes(new TextDecoder().decode(stdout), "No process found");
});