返回 DeepSeek-Reasonix
mimo_preset_capabilities_test.go
根目录 / internal / config / mimo_preset_capabilities_test.go
1 package config
2
3 import "testing"
4
5 func TestMimoPresetCapabilities(t *testing.T) {
6 var cfg Config
7 for _, preset := range CuratedProviderPresets() {
8 for _, entry := range preset.Entries {
9 if err := cfg.UpsertProvider(entry); err != nil {
10 t.Fatalf("upsert preset %q: %v", preset.ID, err)
11 }
12 }
13 }
14 mimo, ok := cfg.Provider("mimo-api")
15 if !ok {
16 t.Fatal("mimo-api provider missing")
17 }
18 if !mimo.NoProxy {
19 t.Fatal("mimo-api preset should bypass configured proxy for China-only endpoint")
20 }
21 if mimo.DefaultModel() != "mimo-v2.6-pro" || !mimo.HasVisionModel("mimo-v2.6-pro") ||
22 !mimo.HasVisionModel("mimo-v2.6-flash") || !mimo.HasVisionModel("mimo-v2.5") || mimo.HasVisionModel("mimo-v2.5-pro") {
23 t.Fatalf("mimo vision capability mismatch: %+v", mimo.VisionModels)
24 }
25 if price := mimo.PriceForModel("mimo-v2.6-flash"); price == nil || price.Currency != "¥" || price.Input != 1 || price.Output != 2 || price.CacheHit != 0.02 {
26 t.Fatalf("mimo-v2.6-flash price = %+v, want current RMB pricing", price)
27 }
28 if price := mimo.PriceForModel("mimo-v2.5-pro"); price == nil || price.Currency != "¥" {
29 t.Fatalf("mimo-v2.5-pro price = %+v, want RMB pricing", price)
30 }
31 mimoAnthropic, ok := cfg.Provider("mimo-anthropic")
32 if !ok {
33 t.Fatal("mimo-anthropic provider missing")
34 }
35 if mimoAnthropic.Kind != "anthropic" || mimoAnthropic.BaseURL != "https://api.xiaomimimo.com/anthropic" || mimoAnthropic.Thinking != "adaptive" {
36 t.Fatalf("mimo-anthropic capability mismatch: %+v", mimoAnthropic)
37 }
38 mimoPlan, ok := cfg.Provider("mimo-token-plan-cn")
39 if !ok {
40 t.Fatal("mimo-token-plan-cn provider missing")
41 }
42 if !mimoPlan.NoProxy || mimoPlan.APIKeyEnv != "MIMO_TOKEN_PLAN_API_KEY" || !mimoPlan.HasVisionModel("mimo-v2.6-pro") || !mimoPlan.HasVisionModel("mimo-v2.5") {
43 t.Fatalf("mimo-token-plan-cn capability mismatch: %+v", mimoPlan)
44 }
45 mimoSGP, ok := cfg.Provider("mimo-token-plan-sgp")
46 if !ok {
47 t.Fatal("mimo-token-plan-sgp provider missing")
48 }
49 if mimoSGP.NoProxy || mimoSGP.BaseURL != "https://token-plan-sgp.xiaomimimo.com/v1" {
50 t.Fatalf("mimo-token-plan-sgp endpoint/proxy mismatch: %+v", mimoSGP)
51 }
52 mimoPlanAnthropic, ok := cfg.Provider("mimo-token-plan-cn-anthropic")
53 if !ok {
54 t.Fatal("mimo-token-plan-cn-anthropic provider missing")
55 }
56 if mimoPlanAnthropic.Kind != "anthropic" || !mimoPlanAnthropic.NoProxy || mimoPlanAnthropic.BaseURL != "https://token-plan-cn.xiaomimimo.com/anthropic" {
57 t.Fatalf("mimo-token-plan-cn-anthropic capability mismatch: %+v", mimoPlanAnthropic)
58 }
59
60 }
61
61 lines GO