import { AnthropicClient } from '../../../../src/nest/llm-parse/clients/anthropic.client'; import { OpenAiCompatibleClient } from '../../../../src/nest/llm-parse/clients/openai-compatible.client'; import { createLlmClient } from '../../../../src/nest/llm-parse/llm-client.factory'; import type { ResolvedLlmConfig } from '../../../../src/nest/llm-parse/llm-config'; import { describe, it, expect } from 'vitest'; const cfg = (provider: string): ResolvedLlmConfig => ({ provider, model: 'm', baseUrl: 'http://x', multimodal: false }) as unknown as ResolvedLlmConfig; describe('createLlmClient', () => { it('returns the Anthropic client for the anthropic provider', () => { expect(createLlmClient(cfg('anthropic'))).toBeInstanceOf(AnthropicClient); }); it('returns the OpenAI-compatible client for openai and local', () => { expect(createLlmClient(cfg('openai'))).toBeInstanceOf(OpenAiCompatibleClient); expect(createLlmClient(cfg('local'))).toBeInstanceOf(OpenAiCompatibleClient); }); it('falls back to the OpenAI-compatible client for an unknown provider', () => { expect(createLlmClient(cfg('something-else'))).toBeInstanceOf(OpenAiCompatibleClient); }); });