From 992fc9cf4edb39bacd27eef9e654971b76b657b4 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 22 Feb 2026 15:41:29 +0000 Subject: [PATCH] test: trim cli program test bootstrap overhead --- src/cli/program.nodes-basic.test.ts | 9 ++++++++- src/cli/program.nodes-media.test.ts | 9 ++++++++- src/cli/program.smoke.test.ts | 10 ++++++++++ src/cli/program/register.subclis.test.ts | 19 +++++++++++++------ 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/cli/program.nodes-basic.test.ts b/src/cli/program.nodes-basic.test.ts index 6124e6e2fb3..8bd3d4c0654 100644 --- a/src/cli/program.nodes-basic.test.ts +++ b/src/cli/program.nodes-basic.test.ts @@ -1,8 +1,15 @@ import { beforeEach, describe, expect, it, vi } from "vitest"; import { createIosNodeListResponse } from "./program.nodes-test-helpers.js"; -import { callGateway, installBaseProgramMocks, runTui, runtime } from "./program.test-mocks.js"; +import { + callGateway, + installBaseProgramMocks, + installSmokeProgramMocks, + runTui, + runtime, +} from "./program.test-mocks.js"; installBaseProgramMocks(); +installSmokeProgramMocks(); const { buildProgram } = await import("./program.js"); diff --git a/src/cli/program.nodes-media.test.ts b/src/cli/program.nodes-media.test.ts index 13f731f7a7d..3e267889c7a 100644 --- a/src/cli/program.nodes-media.test.ts +++ b/src/cli/program.nodes-media.test.ts @@ -2,9 +2,16 @@ import * as fs from "node:fs/promises"; import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { parseCameraSnapPayload, parseCameraClipPayload } from "./nodes-camera.js"; import { IOS_NODE, createIosNodeListResponse } from "./program.nodes-test-helpers.js"; -import { callGateway, installBaseProgramMocks, runTui, runtime } from "./program.test-mocks.js"; +import { + callGateway, + installBaseProgramMocks, + installSmokeProgramMocks, + runTui, + runtime, +} from "./program.test-mocks.js"; installBaseProgramMocks(); +installSmokeProgramMocks(); function getFirstRuntimeLogLine(): string { const first = runtime.log.mock.calls[0]?.[0]; diff --git a/src/cli/program.smoke.test.ts b/src/cli/program.smoke.test.ts index 13572c16800..bed8afab1e9 100644 --- a/src/cli/program.smoke.test.ts +++ b/src/cli/program.smoke.test.ts @@ -14,6 +14,16 @@ import { installBaseProgramMocks(); installSmokeProgramMocks(); +vi.mock("./config-cli.js", () => ({ + registerConfigCli: (program: { + command: (name: string) => { action: (fn: () => unknown) => void }; + }) => { + program.command("config").action(() => configureCommand({}, runtime)); + }, + runConfigGet: vi.fn(), + runConfigUnset: vi.fn(), +})); + const { buildProgram } = await import("./program.js"); describe("cli program (smoke)", () => { diff --git a/src/cli/program/register.subclis.test.ts b/src/cli/program/register.subclis.test.ts index 370316b47ee..15833df6b35 100644 --- a/src/cli/program/register.subclis.test.ts +++ b/src/cli/program/register.subclis.test.ts @@ -25,7 +25,7 @@ const { registerSubCliByName, registerSubCliCommands } = await import("./registe describe("registerSubCliCommands", () => { const originalArgv = process.argv; - const originalEnv = { ...process.env }; + const originalDisableLazySubcommands = process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS; const createRegisteredProgram = (argv: string[], name?: string) => { process.argv = argv; @@ -38,8 +38,11 @@ describe("registerSubCliCommands", () => { }; beforeEach(() => { - process.env = { ...originalEnv }; - delete process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS; + if (originalDisableLazySubcommands === undefined) { + delete process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS; + } else { + process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS = originalDisableLazySubcommands; + } registerAcpCli.mockClear(); acpAction.mockClear(); registerNodesCli.mockClear(); @@ -48,7 +51,11 @@ describe("registerSubCliCommands", () => { afterEach(() => { process.argv = originalArgv; - process.env = { ...originalEnv }; + if (originalDisableLazySubcommands === undefined) { + delete process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS; + } else { + process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS = originalDisableLazySubcommands; + } }); it("registers only the primary placeholder and dispatches", async () => { @@ -56,7 +63,7 @@ describe("registerSubCliCommands", () => { expect(program.commands.map((cmd) => cmd.name())).toEqual(["acp"]); - await program.parseAsync(process.argv); + await program.parseAsync(["acp"], { from: "user" }); expect(registerAcpCli).toHaveBeenCalledTimes(1); expect(acpAction).toHaveBeenCalledTimes(1); @@ -91,7 +98,7 @@ describe("registerSubCliCommands", () => { const names = program.commands.map((cmd) => cmd.name()); expect(names.filter((name) => name === "acp")).toHaveLength(1); - await program.parseAsync(["node", "openclaw", "acp"], { from: "user" }); + await program.parseAsync(["acp"], { from: "user" }); expect(registerAcpCli).toHaveBeenCalledTimes(1); expect(acpAction).toHaveBeenCalledTimes(1); });