Files
Moltbot/src/daemon/inspect.test.ts
2026-02-22 21:19:09 +00:00

88 lines
2.4 KiB
TypeScript

import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { findExtraGatewayServices } from "./inspect.js";
const { execSchtasksMock } = vi.hoisted(() => ({
execSchtasksMock: vi.fn(),
}));
vi.mock("./schtasks-exec.js", () => ({
execSchtasks: (...args: unknown[]) => execSchtasksMock(...args),
}));
describe("findExtraGatewayServices (win32)", () => {
const originalPlatform = process.platform;
beforeEach(() => {
Object.defineProperty(process, "platform", {
configurable: true,
value: "win32",
});
execSchtasksMock.mockReset();
});
afterEach(() => {
Object.defineProperty(process, "platform", {
configurable: true,
value: originalPlatform,
});
});
it("skips schtasks queries unless deep mode is enabled", async () => {
const result = await findExtraGatewayServices({});
expect(result).toEqual([]);
expect(execSchtasksMock).not.toHaveBeenCalled();
});
it("returns empty results when schtasks query fails", async () => {
execSchtasksMock.mockResolvedValueOnce({
code: 1,
stdout: "",
stderr: "error",
});
const result = await findExtraGatewayServices({}, { deep: true });
expect(result).toEqual([]);
});
it("collects only non-openclaw marker tasks from schtasks output", async () => {
execSchtasksMock.mockResolvedValueOnce({
code: 0,
stdout: [
"TaskName: OpenClaw Gateway",
"Task To Run: C:\\Program Files\\OpenClaw\\openclaw.exe gateway run",
"",
"TaskName: Clawdbot Legacy",
"Task To Run: C:\\clawdbot\\clawdbot.exe run",
"",
"TaskName: Other Task",
"Task To Run: C:\\tools\\helper.exe",
"",
"TaskName: MoltBot Legacy",
"Task To Run: C:\\moltbot\\moltbot.exe run",
"",
].join("\n"),
stderr: "",
});
const result = await findExtraGatewayServices({}, { deep: true });
expect(result).toEqual([
{
platform: "win32",
label: "Clawdbot Legacy",
detail: "task: Clawdbot Legacy, run: C:\\clawdbot\\clawdbot.exe run",
scope: "system",
marker: "clawdbot",
legacy: true,
},
{
platform: "win32",
label: "MoltBot Legacy",
detail: "task: MoltBot Legacy, run: C:\\moltbot\\moltbot.exe run",
scope: "system",
marker: "moltbot",
legacy: true,
},
]);
});
});