openpencil/tests/engine/app/ai/catalog.test.ts
Danila Poyarkov 4986fb8b54 fix(ai): simplify model configuration
- Separate model, connection, and advanced settings

- Resolve capabilities and output limits from provider catalogs

- Keep custom model compatibility declarations explicit
2026-08-10 12:55:35 +03:00

44 lines
1.2 KiB
TypeScript

import { afterEach, describe, expect, test } from 'bun:test'
import { resetModelsDevCatalogForTests, resolveModelsDevModel } from '@/app/ai/models/catalog'
function catalogResponse(body: unknown): typeof fetch {
return (async () => new Response(JSON.stringify(body), { status: 200 })) as typeof fetch
}
afterEach(() => resetModelsDevCatalogForTests())
describe('models.dev catalog', () => {
test('resolves provider model capabilities and output limits', async () => {
const model = await resolveModelsDevModel(
'anthropic',
'claude-sonnet-4-6-20260301',
catalogResponse({
anthropic: {
models: {
'claude-sonnet-4-6': {
name: 'Claude Sonnet 4.6',
tool_call: true,
attachment: true,
limit: { output: 64_000 }
}
}
}
})
)
expect(model).toEqual({
id: 'claude-sonnet-4-6-20260301',
name: 'Claude Sonnet 4.6',
capabilities: ['tools', 'vision'],
recommendedMaxOutputTokens: 64_000
})
})
test('returns null when the provider or model is unknown', async () => {
expect(
await resolveModelsDevModel('openai-compatible', 'local', catalogResponse({}))
).toBeNull()
})
})