Finder-launched terminals now inherit a login PATH so tools like ollama resolve, destructive SFTP/editor actions require confirmation, and terminal search plus window dragging work again. SSH forwards and RDP sessions keep listeners and survive reconnect without FastPath crashes. Co-authored-by: Cursor <cursoragent@cursor.com>
89 lines
3.2 KiB
TypeScript
89 lines
3.2 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
AI_PROVIDER_FAMILY_META,
|
|
AI_PROVIDER_FAMILY_ORDER,
|
|
AI_PROVIDER_PRESETS,
|
|
createProviderFromPreset,
|
|
presetsByFamily,
|
|
resolveProviderFamily,
|
|
} from '../../src/ai/providerPresets'
|
|
|
|
describe('AI provider presets grouping', () => {
|
|
it('matches the expected UI group order', () => {
|
|
expect(AI_PROVIDER_FAMILY_ORDER).toEqual([
|
|
'openai_compatible',
|
|
'standalone',
|
|
'plan',
|
|
'local',
|
|
'custom',
|
|
])
|
|
expect(AI_PROVIDER_FAMILY_META.openai_compatible.label).toBe('OpenAI compatible')
|
|
expect(AI_PROVIDER_FAMILY_META.plan.label).toBe('Subscription plans')
|
|
expect(AI_PROVIDER_FAMILY_META.local.label).toBe('Self-hosted')
|
|
expect(AI_PROVIDER_FAMILY_META.custom.label).toBe('Custom')
|
|
})
|
|
|
|
it('lists OpenAI-compatible payg presets', () => {
|
|
expect(presetsByFamily('openai_compatible').map((item) => item.name)).toEqual([
|
|
'DeepSeek',
|
|
'OpenAI',
|
|
'Qwen',
|
|
'Kimi',
|
|
'Xiaomi MiMo',
|
|
'MiniMax',
|
|
])
|
|
})
|
|
|
|
it('lists Anthropic and Google Gemini after the separator group', () => {
|
|
expect(presetsByFamily('standalone').map((item) => item.name)).toEqual([
|
|
'Anthropic',
|
|
'Google Gemini',
|
|
])
|
|
})
|
|
|
|
it('lists Plan presets as GLM / MiniMax / Kimi', () => {
|
|
expect(presetsByFamily('plan').map((item) => item.name)).toEqual(['GLM', 'MiniMax', 'Kimi'])
|
|
expect(createProviderFromPreset('glm').defaultModelId).toBe('glm-5.2-plan')
|
|
expect(createProviderFromPreset('minimax-plan').defaultModelId).toBe('MiniMax-M3-plan')
|
|
expect(createProviderFromPreset('kimi-plan').defaultModelId).toBe('kimi-k3-plan')
|
|
expect(createProviderFromPreset('zai').presetId).toBe('glm')
|
|
})
|
|
|
|
it('defaults DeepSeek to V4 Pro / Flash', () => {
|
|
const deepseek = createProviderFromPreset('deepseek')
|
|
expect(deepseek.defaultModelId).toBe('deepseek-v4-pro')
|
|
expect(deepseek.models.map((item) => item.model)).toEqual(['deepseek-v4-pro', 'deepseek-v4-flash'])
|
|
})
|
|
|
|
it('uses current frontier model IDs from official catalogs', () => {
|
|
expect(createProviderFromPreset('openai').models.map((item) => item.model)).toEqual([
|
|
'gpt-5.6-sol',
|
|
'gpt-5.6-terra',
|
|
'gpt-5.6-luna',
|
|
'gpt-5.5',
|
|
])
|
|
expect(createProviderFromPreset('anthropic').defaultModelId).toBe('claude-opus-5')
|
|
expect(createProviderFromPreset('google').defaultModelId).toBe('gemini-3.1-pro-preview')
|
|
expect(createProviderFromPreset('qwen').defaultModelId).toBe('qwen3.8-max')
|
|
expect(createProviderFromPreset('kimi').defaultModelId).toBe('kimi-k3')
|
|
})
|
|
|
|
it('lists local and custom at the bottom', () => {
|
|
expect(presetsByFamily('local').map((item) => item.name)).toEqual(['Ollama', 'VLLM'])
|
|
expect(presetsByFamily('custom').map((item) => item.name)).toEqual(['Custom'])
|
|
expect(createProviderFromPreset('custom').family).toBe('custom')
|
|
})
|
|
|
|
it('resolves legacy zhipu/zai to plan family', () => {
|
|
expect(
|
|
resolveProviderFamily({
|
|
presetId: 'zai',
|
|
protocol: 'openai-chat',
|
|
authStyle: 'bearer',
|
|
baseUrl: 'https://api.z.ai/api/paas/v4',
|
|
})
|
|
).toBe('plan')
|
|
expect(AI_PROVIDER_PRESETS.some((item) => item.id === 'mimo')).toBe(true)
|
|
})
|
|
})
|