45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { readFile } from "node:fs/promises";
|
|
import test from "node:test";
|
|
|
|
test("documents and exposes simple user-service lifecycle commands", async () => {
|
|
const [readme, uiReadme, packageJson, uiPackageJson] = await Promise.all([
|
|
readFile("README.md", "utf8"),
|
|
readFile("ui/README.md", "utf8"),
|
|
readFile("package.json", "utf8"),
|
|
readFile("ui/package.json", "utf8"),
|
|
]);
|
|
let manifest;
|
|
try {
|
|
manifest = JSON.parse(packageJson);
|
|
} catch (error) {
|
|
assert.fail(`package.json must contain valid JSON: ${String(error)}`);
|
|
}
|
|
const scripts = manifest.scripts;
|
|
for (const command of [
|
|
"install",
|
|
"start",
|
|
"restart",
|
|
"stop",
|
|
"status",
|
|
"logs",
|
|
])
|
|
assert.equal(
|
|
typeof scripts[`bridge:service:${command}`],
|
|
"string",
|
|
`missing bridge:service:${command}`,
|
|
);
|
|
let uiManifest;
|
|
try {
|
|
uiManifest = JSON.parse(uiPackageJson);
|
|
} catch (error) {
|
|
assert.fail(`ui/package.json must contain valid JSON: ${String(error)}`);
|
|
}
|
|
assert.match(readme, /npm run bridge:service:restart/);
|
|
assert.match(readme, /pi-status-ui --toggle/);
|
|
assert.match(readme, /Restart Pi.*selected directory/);
|
|
assert.match(uiReadme, /bridge:service:install/);
|
|
assert.match(uiReadme, /tauri:release/);
|
|
assert.equal(uiManifest.scripts["tauri:release"], "tauri build --no-bundle");
|
|
});
|