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"); });