mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-09 16:21:15 +00:00
68 lines
2.0 KiB
TypeScript
68 lines
2.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { detectRespawnSupervisor, SUPERVISOR_HINT_ENV_VARS } from "./supervisor-markers.js";
|
|
|
|
describe("SUPERVISOR_HINT_ENV_VARS", () => {
|
|
it("includes the cross-platform supervisor hint env vars", () => {
|
|
expect(SUPERVISOR_HINT_ENV_VARS).toEqual(
|
|
expect.arrayContaining([
|
|
"LAUNCH_JOB_LABEL",
|
|
"INVOCATION_ID",
|
|
"OPENCLAW_WINDOWS_TASK_NAME",
|
|
"OPENCLAW_SERVICE_MARKER",
|
|
"OPENCLAW_SERVICE_KIND",
|
|
]),
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("detectRespawnSupervisor", () => {
|
|
it("detects launchd and systemd only from non-blank platform-specific hints", () => {
|
|
expect(detectRespawnSupervisor({ LAUNCH_JOB_LABEL: " ai.openclaw.gateway " }, "darwin")).toBe(
|
|
"launchd",
|
|
);
|
|
expect(detectRespawnSupervisor({ LAUNCH_JOB_LABEL: " " }, "darwin")).toBeNull();
|
|
|
|
expect(detectRespawnSupervisor({ INVOCATION_ID: "abc123" }, "linux")).toBe("systemd");
|
|
expect(detectRespawnSupervisor({ JOURNAL_STREAM: "" }, "linux")).toBeNull();
|
|
});
|
|
|
|
it("detects scheduled-task supervision on Windows from either hint family", () => {
|
|
expect(
|
|
detectRespawnSupervisor({ OPENCLAW_WINDOWS_TASK_NAME: "OpenClaw Gateway" }, "win32"),
|
|
).toBe("schtasks");
|
|
expect(
|
|
detectRespawnSupervisor(
|
|
{
|
|
OPENCLAW_SERVICE_MARKER: "openclaw",
|
|
OPENCLAW_SERVICE_KIND: "gateway",
|
|
},
|
|
"win32",
|
|
),
|
|
).toBe("schtasks");
|
|
expect(
|
|
detectRespawnSupervisor(
|
|
{
|
|
OPENCLAW_SERVICE_MARKER: "openclaw",
|
|
OPENCLAW_SERVICE_KIND: "worker",
|
|
},
|
|
"win32",
|
|
),
|
|
).toBeNull();
|
|
});
|
|
|
|
it("ignores service markers on non-Windows platforms and unknown platforms", () => {
|
|
expect(
|
|
detectRespawnSupervisor(
|
|
{
|
|
OPENCLAW_SERVICE_MARKER: "openclaw",
|
|
OPENCLAW_SERVICE_KIND: "gateway",
|
|
},
|
|
"linux",
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
detectRespawnSupervisor({ LAUNCH_JOB_LABEL: "ai.openclaw.gateway" }, "freebsd"),
|
|
).toBeNull();
|
|
});
|
|
});
|