Files
TREK/server/tests/unit/nest/llm-parse/llm-client.factory.test.ts
T
2026-10-06 21:50:59 +02:00

25 lines
1.2 KiB
TypeScript

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);
});
});