34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { test } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { buildMenuItems, isTraySupported } from "../../../bin/cli/tray/tray.ts";
|
|
|
|
test("buildMenuItems contains expected entries", () => {
|
|
const items = buildMenuItems({ port: 20128, autostartEnabled: false });
|
|
const titles = items.map((i) => i.title);
|
|
assert.ok(titles.includes("Open OmniRoute Dashboard"), "has Open entry");
|
|
assert.ok(
|
|
titles.some((t) => t.startsWith("Port: 20128")),
|
|
"shows port"
|
|
);
|
|
assert.ok(titles.includes("Enable Autostart"), "shows toggle when disabled");
|
|
assert.ok(titles.includes("Quit OmniRoute"), "has quit");
|
|
});
|
|
|
|
test("buildMenuItems shows Disable Autostart when enabled", () => {
|
|
const items = buildMenuItems({ port: 3000, autostartEnabled: true });
|
|
const titles = items.map((i) => i.title);
|
|
assert.ok(titles.includes("Disable Autostart"));
|
|
assert.ok(!titles.includes("Enable Autostart"));
|
|
});
|
|
|
|
test("isTraySupported returns false on linux without DISPLAY", () => {
|
|
if (process.platform !== "linux") return;
|
|
const originalDisplay = process.env.DISPLAY;
|
|
delete process.env.DISPLAY;
|
|
try {
|
|
assert.equal(isTraySupported(), false);
|
|
} finally {
|
|
if (originalDisplay) process.env.DISPLAY = originalDisplay;
|
|
}
|
|
});
|