diff --git a/src/agents/openclaw-tools.subagents.sessions-spawn-depth-limits.test.ts b/src/agents/openclaw-tools.subagents.sessions-spawn-depth-limits.test.ts index aa83da9821d..15158e26c02 100644 --- a/src/agents/openclaw-tools.subagents.sessions-spawn-depth-limits.test.ts +++ b/src/agents/openclaw-tools.subagents.sessions-spawn-depth-limits.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import os from "node:os"; import path from "node:path"; -import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; +import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { createPerSenderSessionConfig } from "./test-helpers/session-config.js"; const callGatewayMock = vi.fn(); @@ -17,6 +17,7 @@ let configOverride: Record = { let addSubagentRunForTests: typeof import("./subagent-registry.js").addSubagentRunForTests; let resetSubagentRegistryForTests: typeof import("./subagent-registry.js").resetSubagentRegistryForTests; let subagentRegistryTesting: typeof import("./subagent-registry.js").__testing; +let setSubagentSpawnDepsForTest: typeof import("./subagent-spawn.js").__testing.setDepsForTest; let createSessionsSpawnTool: typeof import("./tools/sessions-spawn-tool.js").createSessionsSpawnTool; vi.mock("../config/config.js", async () => { @@ -68,11 +69,18 @@ beforeAll(async () => { addSubagentRunForTests, resetSubagentRegistryForTests, } = await import("./subagent-registry.js")); + ({ + __testing: { setDepsForTest: setSubagentSpawnDepsForTest }, + } = await import("./subagent-spawn.js")); ({ createSessionsSpawnTool } = await import("./tools/sessions-spawn-tool.js")); }); describe("sessions_spawn depth + child limits", () => { beforeEach(() => { + setSubagentSpawnDepsForTest({ + callGateway: (opts) => callGatewayMock(opts), + getGlobalHookRunner: () => null, + }); subagentRegistryTesting.setDepsForTest({ captureSubagentCompletionReply: () => Promise.resolve(undefined), cleanupBrowserSessionsForLifecycleEnd: () => Promise.resolve(), @@ -104,6 +112,10 @@ describe("sessions_spawn depth + child limits", () => { }); }); + afterAll(() => { + setSubagentSpawnDepsForTest(); + }); + it("rejects spawning when caller depth reaches maxSpawnDepth", async () => { const tool = createSessionsSpawnTool({ agentSessionKey: "agent:main:subagent:parent", diff --git a/src/agents/pi-auth-json.test.ts b/src/agents/pi-auth-json.test.ts index 3b641fce3a8..2213030ebc2 100644 --- a/src/agents/pi-auth-json.test.ts +++ b/src/agents/pi-auth-json.test.ts @@ -9,6 +9,11 @@ vi.mock("../plugins/provider-runtime.js", () => ({ resolveExternalAuthProfilesWithPlugins: () => [], })); +vi.mock("./auth-profiles/external-cli-sync.js", () => ({ + readManagedExternalCliCredential: () => null, + syncExternalCliCredentials: () => false, +})); + type AuthProfileStore = Parameters[0]; async function createAgentDir() {