mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-12 04:32:53 +00:00
102 lines
3.1 KiB
TypeScript
102 lines
3.1 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
import { getDaemonStatusSummary } from "./status.daemon.js";
|
|
|
|
const mocks = vi.hoisted(() => ({
|
|
readServiceStatusSummary: vi.fn(),
|
|
resolveGatewayService: vi.fn(() => ({ kind: "gateway" })),
|
|
resolveNodeService: vi.fn(() => ({ kind: "node" })),
|
|
}));
|
|
|
|
vi.mock("./status.service-summary.js", () => ({
|
|
readServiceStatusSummary: mocks.readServiceStatusSummary,
|
|
}));
|
|
|
|
vi.mock("../daemon/service.js", () => ({
|
|
resolveGatewayService: mocks.resolveGatewayService,
|
|
}));
|
|
|
|
vi.mock("../daemon/node-service.js", () => ({
|
|
resolveNodeService: mocks.resolveNodeService,
|
|
}));
|
|
|
|
describe("status daemon summary", () => {
|
|
it("preserves service layout diagnostics for status output", async () => {
|
|
mocks.readServiceStatusSummary.mockResolvedValueOnce({
|
|
label: "systemd",
|
|
installed: true,
|
|
loaded: true,
|
|
managedByOpenClaw: true,
|
|
externallyManaged: false,
|
|
loadedText: "enabled",
|
|
runtime: { status: "running", pid: 1234 },
|
|
layout: {
|
|
execStart: "/usr/bin/node /opt/openclaw/dist/entry.js gateway",
|
|
sourceScope: "system",
|
|
entrypointSourceCheckout: false,
|
|
},
|
|
});
|
|
|
|
const summary = await getDaemonStatusSummary();
|
|
expect(summary.runtimeShort).toBe("running (pid 1234)");
|
|
expect(summary.layout?.execStart).toBe("/usr/bin/node /opt/openclaw/dist/entry.js gateway");
|
|
expect(summary.layout?.sourceScope).toBe("system");
|
|
expect(summary.layout?.entrypointSourceCheckout).toBe(false);
|
|
});
|
|
|
|
it("includes suspicious systemd cgroup hygiene in the service runtime summary", async () => {
|
|
mocks.readServiceStatusSummary.mockResolvedValueOnce({
|
|
label: "systemd user",
|
|
installed: true,
|
|
loaded: true,
|
|
managedByOpenClaw: true,
|
|
externallyManaged: false,
|
|
loadedText: "enabled",
|
|
runtime: {
|
|
status: "running",
|
|
pid: 1234,
|
|
systemd: {
|
|
unit: "openclaw-gateway.service",
|
|
killMode: "process",
|
|
tasksCurrent: 807,
|
|
memoryCurrent: 11_918_534_246,
|
|
},
|
|
},
|
|
});
|
|
|
|
const summary = await getDaemonStatusSummary();
|
|
expect(summary.runtimeShort).toBe(
|
|
"running (pid 1234, cgroup hygiene: KillMode=process, tasks=807, memory=11.1GiB)",
|
|
);
|
|
expect(summary.runtime?.systemd).toEqual({
|
|
unit: "openclaw-gateway.service",
|
|
killMode: "process",
|
|
tasksCurrent: 807,
|
|
memoryCurrent: 11_918_534_246,
|
|
});
|
|
});
|
|
|
|
it("keeps normal systemd cgroup metrics out of the short status line", async () => {
|
|
mocks.readServiceStatusSummary.mockResolvedValueOnce({
|
|
label: "systemd user",
|
|
installed: true,
|
|
loaded: true,
|
|
managedByOpenClaw: true,
|
|
externallyManaged: false,
|
|
loadedText: "enabled",
|
|
runtime: {
|
|
status: "running",
|
|
pid: 1234,
|
|
systemd: {
|
|
unit: "openclaw-gateway.service",
|
|
killMode: "control-group",
|
|
tasksCurrent: 7,
|
|
memoryCurrent: 132_120_576,
|
|
},
|
|
},
|
|
});
|
|
|
|
const summary = await getDaemonStatusSummary();
|
|
expect(summary.runtimeShort).toBe("running (pid 1234)");
|
|
});
|
|
});
|