package config import "testing" type mockModelAliasReader map[string]string func (m mockModelAliasReader) ModelAliases() map[string]string { return m } func TestResolveModelDirectDeepSeek(t *testing.T) { got, ok := ResolveModel(nil, "deepseek-v4-flash") if !ok || got != "deepseek-v4-flash" { t.Fatalf("expected deepseek-v4-flash, got ok=%v model=%q", ok, got) } } func TestResolveModelAlias(t *testing.T) { got, ok := ResolveModel(nil, "gpt-4.1") if !ok || got != "deepseek-v4-flash" { t.Fatalf("expected alias gpt-4.1 -> deepseek-v4-flash, got ok=%v model=%q", ok, got) } } func TestResolveModelHeuristicReasoner(t *testing.T) { got, ok := ResolveModel(nil, "o3-super") if !ok || got != "deepseek-v4-pro" { t.Fatalf("expected heuristic reasoner, got ok=%v model=%q", ok, got) } } func TestResolveModelUnknown(t *testing.T) { _, ok := ResolveModel(nil, "totally-custom-model") if ok { t.Fatal("expected unknown model to fail resolve") } } func TestResolveModelRejectsLegacyDeepSeekIDs(t *testing.T) { legacyModels := []string{ "deepseek-chat", "deepseek-reasoner", "deepseek-chat-search", "deepseek-reasoner-search", "deepseek-expert-chat", "deepseek-expert-reasoner", "deepseek-vision-chat", } for _, model := range legacyModels { if got, ok := ResolveModel(nil, model); ok { t.Fatalf("expected legacy model %q to be rejected, got %q", model, got) } } } func TestResolveModelDirectDeepSeekExpert(t *testing.T) { got, ok := ResolveModel(nil, "deepseek-v4-pro") if !ok || got != "deepseek-v4-pro" { t.Fatalf("expected deepseek-v4-pro, got ok=%v model=%q", ok, got) } } func TestResolveModelCustomAliasToExpert(t *testing.T) { got, ok := ResolveModel(mockModelAliasReader{ "my-expert-model": "deepseek-v4-pro-search", }, "my-expert-model") if !ok || got != "deepseek-v4-pro-search" { t.Fatalf("expected alias -> deepseek-v4-pro-search, got ok=%v model=%q", ok, got) } } func TestResolveModelCustomAliasToVision(t *testing.T) { got, ok := ResolveModel(mockModelAliasReader{ "my-vision-model": "deepseek-v4-vision-search", }, "my-vision-model") if !ok || got != "deepseek-v4-vision-search" { t.Fatalf("expected alias -> deepseek-v4-vision-search, got ok=%v model=%q", ok, got) } } func TestClaudeModelsResponsePaginationFields(t *testing.T) { resp := ClaudeModelsResponse() if _, ok := resp["first_id"]; !ok { t.Fatalf("expected first_id in response: %#v", resp) } if _, ok := resp["last_id"]; !ok { t.Fatalf("expected last_id in response: %#v", resp) } if _, ok := resp["has_more"]; !ok { t.Fatalf("expected has_more in response: %#v", resp) } }