Fix: TaskTool Dynamic Updates (#697)

This commit is contained in:
tanzhenxin
2025-09-25 19:11:55 +08:00
committed by GitHub
parent 673854b446
commit c405434c41
5 changed files with 106 additions and 24 deletions

View File

@@ -41,12 +41,14 @@ import type {
ToolConfig,
} from './types.js';
import { SubagentTerminateMode } from './types.js';
import { GeminiClient } from '../core/client.js';
vi.mock('../core/geminiChat.js');
vi.mock('../core/contentGenerator.js');
vi.mock('../utils/environmentContext.js');
vi.mock('../core/nonInteractiveToolExecutor.js');
vi.mock('../ide/ide-client.js');
vi.mock('../core/client.js');
async function createMockConfig(
toolRegistryMocks = {},
@@ -194,6 +196,28 @@ describe('subagent.ts', () => {
}) as unknown as GeminiChat,
);
// Mock GeminiClient constructor to return a properly mocked client
const mockGeminiChat = {
setTools: vi.fn(),
getHistory: vi.fn().mockReturnValue([]),
setHistory: vi.fn(),
sendMessageStream: vi.fn(),
};
const mockGeminiClient = {
getChat: vi.fn().mockReturnValue(mockGeminiChat),
setTools: vi.fn().mockResolvedValue(undefined),
isInitialized: vi.fn().mockReturnValue(true),
getHistory: vi.fn().mockReturnValue([]),
initialize: vi.fn().mockResolvedValue(undefined),
setHistory: vi.fn(),
};
// Mock the GeminiClient constructor
vi.mocked(GeminiClient).mockImplementation(
() => mockGeminiClient as unknown as GeminiClient,
);
// Default mock for executeToolCall
vi.mocked(executeToolCall).mockResolvedValue({
callId: 'default-call',