-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
111 lines (100 loc) · 3.15 KB
/
test.js
File metadata and controls
111 lines (100 loc) · 3.15 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
107
108
109
110
111
const assert = require("assert");
const fs = require("fs");
const { spawnSync } = require("child_process");
const mvarcs = require("./index.js");
try {
const fileLocation = mvarcs.where();
assert.ok(fileLocation.includes("cacert.pem"), "mvarcs.where() not expected");
console.log("OK: mvarcs.where() returns path", fileLocation);
} catch (err) {
console.error("TEST FAILED:", err.message);
process.exit(1);
}
try {
const content = fs.readFileSync(mvarcs, "utf8");
assert.ok(
content.includes("BEGIN CERTIFICATE"),
"cacert.pem found but file does not contain BEGIN CERTIFICATE"
);
console.log("OK: cacert.pem found and contains BEGIN CERTIFICATE");
} catch (err) {
console.error("TEST FAILED:", err.message);
process.exit(1);
}
try {
const content = mvarcs.contents();
assert.ok(
content.includes("BEGIN CERTIFICATE"),
"mvarcs.contents() resolves but does not contain BEGIN CERTIFICATE"
);
console.log("OK: mvarcs.contents() resolves and contains BEGIN CERTIFICATE");
} catch (err) {
console.error("TEST FAILED:", err.message);
process.exit(1);
}
try {
const versionFromPackage = JSON.parse(
fs.readFileSync("package.json", "utf8")
).version;
const ver = mvarcs.version;
assert.ok(
ver.includes(versionFromPackage),
"mvarcs.version does not resolve to the expected version"
);
console.log(
"OK: mvarcs.version resolves to the expected version",
versionFromPackage
);
} catch (err) {
console.error("TEST FAILED:", err.message);
process.exit(1);
}
// CLI tests
function runCLI(args) {
const res = spawnSync("node", ["bin/mvarcs.js", ...args], { encoding: "utf8" });
if (res.error) throw res.error;
return { stdout: res.stdout.trim(), stderr: res.stderr.trim(), status: res.status };
}
try {
const r = runCLI([]);
assert.ok(r.stdout.includes("cacert.pem"), "CLI default (path) output invalid");
assert.strictEqual(r.status, 0, "CLI default exit code not 0");
console.log("OK: CLI default path output");
} catch (err) {
console.error("TEST FAILED (CLI path):", err.message);
process.exit(1);
}
try {
const r = runCLI(["-c"]);
assert.ok(r.stdout.includes("BEGIN CERTIFICATE"), "CLI contents missing certificate header");
console.log("OK: CLI -c contents output");
} catch (err) {
console.error("TEST FAILED (CLI contents):", err.message);
process.exit(1);
}
try {
const r = runCLI(["-s"]);
assert.ok(r.stdout.startsWith("https://"), "CLI -s source not an https URL");
console.log("OK: CLI -s source output");
} catch (err) {
console.error("TEST FAILED (CLI source):", err.message);
process.exit(1);
}
try {
const pkgVersion = JSON.parse(fs.readFileSync("package.json", "utf8")).version;
const r = runCLI(["-v"]);
assert.strictEqual(r.stdout, pkgVersion, "CLI -v version mismatch");
console.log("OK: CLI -v version output");
} catch (err) {
console.error("TEST FAILED (CLI version):", err.message);
process.exit(1);
}
try {
const r = runCLI(["-h"]);
assert.ok(r.stdout.includes("Usage:"), "CLI -h help missing Usage header");
console.log("OK: CLI -h help output");
} catch (err) {
console.error("TEST FAILED (CLI help):", err.message);
process.exit(1);
}
process.exit(0);