File size: 1,344 Bytes
fc93158 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import { describe, expect, it } from "vitest";
import { isSystemdUnavailableDetail, renderSystemdUnavailableHints } from "./systemd-hints.js";
describe("isSystemdUnavailableDetail", () => {
it("matches systemd unavailable error details", () => {
expect(
isSystemdUnavailableDetail("systemctl --user unavailable: Failed to connect to bus"),
).toBe(true);
expect(
isSystemdUnavailableDetail(
"systemctl not available; systemd user services are required on Linux.",
),
).toBe(true);
expect(isSystemdUnavailableDetail("permission denied")).toBe(false);
});
});
describe("renderSystemdUnavailableHints", () => {
it("renders WSL2-specific recovery hints", () => {
expect(renderSystemdUnavailableHints({ wsl: true })).toEqual([
"WSL2 needs systemd enabled: edit /etc/wsl.conf with [boot]\\nsystemd=true",
"Then run: wsl --shutdown (from PowerShell) and reopen your distro.",
"Verify: systemctl --user status",
]);
});
it("renders generic Linux recovery hints outside WSL", () => {
expect(renderSystemdUnavailableHints()).toEqual([
"systemd user services are unavailable; install/enable systemd or run the gateway under your supervisor.",
"If you're in a container, run the gateway in the foreground instead of `openclaw gateway`.",
]);
});
});
|