mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-15 19:52:50 +03:00
33 lines
1.8 KiB
TypeScript
33 lines
1.8 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { readFileSync, readdirSync } from "node:fs";
|
|
import { join } from "node:path";
|
|
import { tmpdir } from "node:os";
|
|
|
|
test("characterize: trayWindows.mjs initWinTray writes a temp .ps1 (old behavior)", async () => {
|
|
const { initWinTray } = await import("../../bin/cli/tray/trayWindows.mjs");
|
|
const ORIG_PLATFORM = Object.getOwnPropertyDescriptor(process, "platform");
|
|
Object.defineProperty(process, "platform", { value: "win32", configurable: true });
|
|
const cleanup = () => {
|
|
if (ORIG_PLATFORM) Object.defineProperty(process, "platform", ORIG_PLATFORM);
|
|
};
|
|
try {
|
|
const proc = initWinTray({ port: 8609, onQuit() {}, onOpenDashboard() {}, onShowLogs() {} });
|
|
if (proc && typeof proc.on === "function") proc.on("error", () => {});
|
|
const scripts = readdirSync(tmpdir()).filter((f) => f.startsWith("omniroute-tray-") && f.endsWith(".ps1"));
|
|
assert.ok(scripts.length > 0, "initWinTray creates a temp .ps1 (expected — that is the Norton trigger)");
|
|
const content = readFileSync(join(tmpdir(), scripts[0]), "utf8");
|
|
assert.ok(content.includes("System.Windows.Forms.NotifyIcon"), "temp .ps1 uses WinForms tray");
|
|
} finally {
|
|
cleanup();
|
|
}
|
|
});
|
|
|
|
test("REGRESSION GUARD: index.mjs no longer imports or calls the PowerShell tray (#8609)", () => {
|
|
const source = readFileSync(join(process.cwd(), "bin/cli/tray/index.mjs"), "utf8");
|
|
assert.ok(!source.includes("trayWindows"), "index.mjs must not import trayWindows.mjs");
|
|
assert.ok(!source.includes("initWinTray"), "index.mjs must not reference initWinTray");
|
|
assert.ok(!source.includes("killWinTray"), "index.mjs must not reference killWinTray");
|
|
assert.ok(source.includes("initSystrayUnix"), "index.mjs must still import initSystrayUnix");
|
|
});
|