openclaw/src/commands/daemon-install-plan.shared....

43 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
resolveDaemonInstallRuntimeInputs,
resolveDaemonNodeBinDir,
resolveGatewayDevMode,
} from "./daemon-install-plan.shared.js";
describe("resolveGatewayDevMode", () => {
it("detects src ts entrypoints", () => {
expect(resolveGatewayDevMode(["node", "/Users/me/openclaw/src/cli/index.ts"])).toBe(true);
expect(resolveGatewayDevMode(["node", "C:\\Users\\me\\openclaw\\src\\cli\\index.ts"])).toBe(
true,
);
expect(resolveGatewayDevMode(["node", "/Users/me/openclaw/dist/cli/index.js"])).toBe(false);
});
});
describe("resolveDaemonInstallRuntimeInputs", () => {
it("keeps explicit devMode and nodePath overrides", async () => {
await expect(
resolveDaemonInstallRuntimeInputs({
env: {},
runtime: "node",
devMode: false,
nodePath: "/custom/node",
}),
).resolves.toEqual({
devMode: false,
nodePath: "/custom/node",
});
});
});
describe("resolveDaemonNodeBinDir", () => {
it("returns the absolute node bin directory", () => {
expect(resolveDaemonNodeBinDir("/custom/node/bin/node")).toEqual(["/custom/node/bin"]);
});
it("ignores bare executable names", () => {
expect(resolveDaemonNodeBinDir("node")).toBeUndefined();
});
});