Files
openmaic/OpenMAIC/tests/ai/xiaomi-provider.test.ts
2026-08-16 14:58:47 +08:00

49 lines
1.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { getProvider } from '@/lib/ai/providers';
import { supportsConfigurableThinking } from '@/lib/ai/thinking-config';
describe('Xiaomi MiMo provider defaults', () => {
it('exposes pay-as-you-go and Token Plan OpenAI-compatible endpoints', () => {
const provider = getProvider('xiaomi');
expect(provider?.defaultBaseUrl).toBe('https://api.xiaomimimo.com/v1');
expect(provider?.alternateBaseUrls).toEqual([
{ label: 'settings.baseUrlRegion.xiaomiPayg', url: 'https://api.xiaomimimo.com/v1' },
{
label: 'settings.baseUrlRegion.xiaomiTokenPlanCN',
url: 'https://token-plan-cn.xiaomimimo.com/v1',
},
{
label: 'settings.baseUrlRegion.xiaomiTokenPlanSGP',
url: 'https://token-plan-sgp.xiaomimimo.com/v1',
},
{
label: 'settings.baseUrlRegion.xiaomiTokenPlanEU',
url: 'https://token-plan-ams.xiaomimimo.com/v1',
},
]);
});
it('matches the supported MiMo text and multimodal model catalog', () => {
const modelIds = getProvider('xiaomi')?.models.map((model) => model.id) ?? [];
expect(modelIds).toEqual([
'mimo-v2.5-pro',
'mimo-v2-pro',
'mimo-v2.5',
'mimo-v2-omni',
'mimo-v2-flash',
]);
});
it('marks MiMo reasoning models as configurable thinking models', () => {
const models = getProvider('xiaomi')?.models ?? [];
for (const model of models) {
expect(model.capabilities?.thinking?.requestAdapter).toBe('xiaomi');
expect(supportsConfigurableThinking(model.capabilities?.thinking)).toBe(true);
}
});
});