mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 11:41:24 +00:00
refactor(commands): share daemon runtime warning helper
This commit is contained in:
71
src/commands/daemon-install-runtime-warning.test.ts
Normal file
71
src/commands/daemon-install-runtime-warning.test.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const mocks = vi.hoisted(() => ({
|
||||
resolveSystemNodeInfo: vi.fn(),
|
||||
renderSystemNodeWarning: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("../daemon/runtime-paths.js", () => ({
|
||||
resolveSystemNodeInfo: mocks.resolveSystemNodeInfo,
|
||||
renderSystemNodeWarning: mocks.renderSystemNodeWarning,
|
||||
}));
|
||||
|
||||
import { emitNodeRuntimeWarning } from "./daemon-install-runtime-warning.js";
|
||||
|
||||
afterEach(() => {
|
||||
vi.resetAllMocks();
|
||||
});
|
||||
|
||||
describe("emitNodeRuntimeWarning", () => {
|
||||
it("skips lookup when runtime is not node", async () => {
|
||||
const warn = vi.fn();
|
||||
await emitNodeRuntimeWarning({
|
||||
env: {},
|
||||
runtime: "bun",
|
||||
warn,
|
||||
title: "Gateway runtime",
|
||||
});
|
||||
expect(mocks.resolveSystemNodeInfo).not.toHaveBeenCalled();
|
||||
expect(mocks.renderSystemNodeWarning).not.toHaveBeenCalled();
|
||||
expect(warn).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("emits warning when system node check returns one", async () => {
|
||||
const warn = vi.fn();
|
||||
mocks.resolveSystemNodeInfo.mockResolvedValue({ path: "/usr/bin/node", version: "18.0.0" });
|
||||
mocks.renderSystemNodeWarning.mockReturnValue("Node too old");
|
||||
|
||||
await emitNodeRuntimeWarning({
|
||||
env: { PATH: "/usr/bin" },
|
||||
runtime: "node",
|
||||
nodeProgram: "/opt/node",
|
||||
warn,
|
||||
title: "Node daemon runtime",
|
||||
});
|
||||
|
||||
expect(mocks.resolveSystemNodeInfo).toHaveBeenCalledWith({
|
||||
env: { PATH: "/usr/bin" },
|
||||
});
|
||||
expect(mocks.renderSystemNodeWarning).toHaveBeenCalledWith(
|
||||
{ path: "/usr/bin/node", version: "18.0.0" },
|
||||
"/opt/node",
|
||||
);
|
||||
expect(warn).toHaveBeenCalledWith("Node too old", "Node daemon runtime");
|
||||
});
|
||||
|
||||
it("does not emit when warning helper returns null", async () => {
|
||||
const warn = vi.fn();
|
||||
mocks.resolveSystemNodeInfo.mockResolvedValue(null);
|
||||
mocks.renderSystemNodeWarning.mockReturnValue(null);
|
||||
|
||||
await emitNodeRuntimeWarning({
|
||||
env: {},
|
||||
runtime: "node",
|
||||
nodeProgram: "node",
|
||||
warn,
|
||||
title: "Gateway runtime",
|
||||
});
|
||||
|
||||
expect(warn).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user