openpencil/tests/engine/app/ai/model.test.ts
2026-05-19 15:10:32 +03:00

49 lines
1.4 KiB
TypeScript

import { describe, expect, test } from 'bun:test'
import { resolveLanguageModelID } from '@/app/ai/chat/model'
import { normalizeOpenRouterModel } from '@/app/ai/chat/provider-models'
describe('resolveLanguageModelID', () => {
test('uses the selected OpenRouter model when no custom model is configured', () => {
expect(
resolveLanguageModelID({
providerID: 'openrouter',
modelID: 'anthropic/claude-sonnet-4.6',
customModelID: ''
})
).toBe('anthropic/claude-sonnet-4.6')
})
test('uses a custom OpenRouter model ID when provided', () => {
expect(
resolveLanguageModelID({
providerID: 'openrouter',
modelID: 'anthropic/claude-sonnet-4.6',
customModelID: ' meta-llama/llama-3.3-70b-instruct '
})
).toBe('meta-llama/llama-3.3-70b-instruct')
})
})
describe('normalizeOpenRouterModel', () => {
test('keeps tool-capable OpenRouter models', () => {
expect(
normalizeOpenRouterModel({
id: 'meta-llama/llama-3.3-70b-instruct',
name: 'Llama 3.3 70B Instruct',
supported_parameters: ['tools']
})
).toEqual({ id: 'meta-llama/llama-3.3-70b-instruct', name: 'Llama 3.3 70B Instruct' })
})
test('skips OpenRouter models without tool support', () => {
expect(
normalizeOpenRouterModel({
id: 'text-only/model',
name: 'Text Only',
supported_parameters: []
})
).toBeNull()
})
})