Files
pi-gui/test/noctalia-v5-plugin.test.js
T

40 lines
1.6 KiB
JavaScript

import assert from "node:assert/strict";
import { access, readFile } from "node:fs/promises";
import test from "node:test";
test("ships a v5 Noctalia aggregate launcher instead of a primary panel", async () => {
const [manifest, bridge] = await Promise.all([
readFile("noctalia-v5-plugin/pi-status-bridge/plugin.toml", "utf8"),
readFile("noctalia-v5-plugin/pi-status-bridge/bridge.luau", "utf8"),
]);
assert.doesNotMatch(manifest, /\[\[panel\]\]/);
assert.match(manifest, /entry = "bridge\.luau"/);
assert.match(bridge, /PI_STATUS_UI_BINARY/);
assert.match(bridge, /pi-status-ui/);
assert.match(bridge, /noctalia\.runAsync/);
assert.match(bridge, /test -x/);
assert.match(bridge, /setsid -f env TMPDIR=\/tmp/);
assert.match(bridge, /--toggle/);
assert.doesNotMatch(bridge, /--show/);
assert.match(bridge, /pi-status-ui\.log/);
assert.doesNotMatch(bridge, /togglePanel/);
assert.match(bridge, /get_workspace_summary/);
assert.match(bridge, /openCount/);
assert.match(bridge, /workingCount/);
assert.match(bridge, /attentionCount/);
assert.match(bridge, /recoveringCount/);
assert.match(bridge, /errorCount/);
assert.match(bridge, /Pi reconnecting/);
assert.doesNotMatch(bridge, /discover_home_agent/);
assert.doesNotMatch(bridge, /get_state/);
assert.match(bridge, /systemctl --user start pi-status-bridge\.service/);
assert.match(bridge, /bridge_start_in_flight/);
assert.match(bridge, /pending_ui_open/);
assert.match(bridge, /Bridge is starting/);
await assert.rejects(
access("noctalia-v5-plugin/pi-status-bridge/picker.luau"),
{ code: "ENOENT" },
);
});