
























1-import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
1+import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
22import { testing as cliBackendsTesting } from "../agents/cli-backends.js";
3-import { GATEWAY_CLIENT_MODES, GATEWAY_CLIENT_NAMES } from "../utils/message-channel.js";
4-5-const gatewayClientState = vi.hoisted(() => ({
6-lastOptions: undefined as Record<string, unknown> | undefined,
7-}));
8-9-vi.mock("./client.js", () => ({
10-GatewayClient: class MockGatewayClient {
11-constructor(options: Record<string, unknown>) {
12-gatewayClientState.lastOptions = options;
13-}
14-15-start() {
16-const options = gatewayClientState.lastOptions as
17-| { onHelloOk?: (hello: { type: "hello-ok" }) => void }
18-| undefined;
19-queueMicrotask(() => options?.onHelloOk?.({ type: "hello-ok" }));
20-}
21-22-async stopAndWait() {}
23-},
24-}));
253264vi.mock("./client-start-readiness.js", () => ({
275startGatewayClientWhenEventLoopReady: async (client: { start: () => void }) => {
@@ -37,9 +15,13 @@ describe("gateway cli backend live helpers", () => {
3715liveHelpers = await import("./gateway-cli-backend.live-helpers.js");
3816});
391718+beforeEach(() => {
19+vi.useRealTimers();
20+});
21+4022afterEach(() => {
23+vi.useRealTimers();
4124cliBackendsTesting.resetDepsForTest();
42-gatewayClientState.lastOptions = undefined;
4325delete process.env.OPENCLAW_SKIP_CHANNELS;
4426delete process.env.OPENCLAW_SKIP_PROVIDERS;
4527delete process.env.OPENCLAW_SKIP_GMAIL_WATCHER;
@@ -95,26 +77,6 @@ describe("gateway cli backend live helpers", () => {
9577expect(process.env.ANTHROPIC_API_KEY_OLD).toBe("old-anthropic-old");
9678});
977998-it("builds the live gateway client with test identity defaults", async () => {
99-const { connectTestGatewayClient } = await import("./gateway-cli-backend.live-helpers.js");
100-101-const client = await connectTestGatewayClient({
102-url: "ws://127.0.0.1:18789",
103-token: "gateway-token",
104-});
105-106-expect(client.start).toBeTypeOf("function");
107-expect(client.stopAndWait).toBeTypeOf("function");
108-expect(gatewayClientState.lastOptions?.url).toBe("ws://127.0.0.1:18789");
109-expect(gatewayClientState.lastOptions?.token).toBe("gateway-token");
110-expect(gatewayClientState.lastOptions?.clientName).toBe(GATEWAY_CLIENT_NAMES.TEST);
111-expect(gatewayClientState.lastOptions?.clientDisplayName).toBe("vitest-live");
112-expect(gatewayClientState.lastOptions?.clientVersion).toBe("dev");
113-expect(gatewayClientState.lastOptions?.mode).toBe(GATEWAY_CLIENT_MODES.TEST);
114-expect(gatewayClientState.lastOptions?.connectChallengeTimeoutMs).toBe(45_000);
115-expect(gatewayClientState.lastOptions).not.toHaveProperty("requestTimeoutMs");
116-});
117-11880it("defaults the model switch probe to Claude Sonnet -> Opus", async () => {
11981const { resolveCliModelSwitchProbeTarget, shouldRunCliModelSwitchProbe } =
12082await import("./gateway-cli-backend.live-helpers.js");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。