| 5 | import type { LearnCliClientLike } from '../../src/mcp/client.js'; |
| 6 | |
| 7 | function createMockClient(overrides: Partial<LearnCliClientLike> = {}): LearnCliClientLike { |
| 8 | return { |
| 9 | searchDocs: vi.fn<LearnCliClientLike['searchDocs']>().mockResolvedValue('{"results":[]}'), |
| 10 | fetchDocument: vi.fn<LearnCliClientLike['fetchDocument']>().mockResolvedValue(''), |
| 11 | searchCodeSamples: vi.fn<LearnCliClientLike['searchCodeSamples']>().mockResolvedValue('{"results":[]}'), |
| 12 | getToolMapping: vi.fn<LearnCliClientLike['getToolMapping']>().mockResolvedValue({ |
| 13 | docsSearch: { name: 'microsoft_docs_search', inputSchema: { type: 'object' } }, |
| 14 | docsFetch: { name: 'microsoft_docs_fetch', inputSchema: { type: 'object' } }, |
| 15 | codeSearch: { name: 'microsoft_code_sample_search', inputSchema: { type: 'object' } }, |
| 16 | }), |
| 17 | close: vi.fn<LearnCliClientLike['close']>().mockResolvedValue(undefined), |
| 18 | ...overrides, |
| 19 | }; |
| 20 | } |
| 21 | |
| 22 | function createTestContext(client: LearnCliClientLike): { |
| 23 | context: Partial<CliContext>; |