mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 03:12:42 +00:00
refactor(daemon): share runtime and service probe helpers
This commit is contained in:
87
src/daemon/inspect.test.ts
Normal file
87
src/daemon/inspect.test.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
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,
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user