diff --git a/internal/registry/model_definitions_test.go b/internal/registry/model_definitions_test.go deleted file mode 100644 index 03223a15..00000000 --- a/internal/registry/model_definitions_test.go +++ /dev/null @@ -1,146 +0,0 @@ -package registry - -import "testing" - -func TestCodexFreeModelsExcludeGPT55(t *testing.T) { - model := findModelInfo(GetCodexFreeModels(), "gpt-5.5") - if model != nil { - t.Fatal("expected codex free tier to NOT include gpt-5.5") - } -} - -func TestCodexStaticModelsIncludeGPT55(t *testing.T) { - tierModels := map[string][]*ModelInfo{ - "team": GetCodexTeamModels(), - "plus": GetCodexPlusModels(), - "pro": GetCodexProModels(), - } - - for tier, models := range tierModels { - t.Run(tier, func(t *testing.T) { - model := findModelInfo(models, "gpt-5.5") - if model == nil { - t.Fatalf("expected codex %s tier to include gpt-5.5", tier) - } - assertGPT55ModelInfo(t, tier, model) - }) - } - - model := LookupStaticModelInfo("gpt-5.5") - if model == nil { - t.Fatal("expected LookupStaticModelInfo to find gpt-5.5") - } - assertGPT55ModelInfo(t, "lookup", model) -} - -func TestWithXAIBuiltinsAddsVideoModel(t *testing.T) { - models := WithXAIBuiltins(nil) - found := false - for _, model := range models { - if model != nil && model.ID == xaiBuiltinVideoModelID { - found = true - if model.OwnedBy != "xai" { - t.Fatalf("OwnedBy = %q, want xai", model.OwnedBy) - } - } - } - if !found { - t.Fatalf("expected %s builtin model", xaiBuiltinVideoModelID) - } -} - -func TestValidateModelsCatalogAllowsMissingSections(t *testing.T) { - data := validTestModelsCatalog() - data.XAI = nil - - if err := validateModelsCatalog(data); err != nil { - t.Fatalf("validateModelsCatalog() error = %v", err) - } -} - -func TestValidateModelsCatalogRejectsInvalidDefinitions(t *testing.T) { - data := validTestModelsCatalog() - data.Claude = []*ModelInfo{{ID: ""}} - - if err := validateModelsCatalog(data); err == nil { - t.Fatal("expected invalid model definition error") - } -} - -func validTestModelsCatalog() *staticModelsJSON { - models := []*ModelInfo{{ID: "test-model"}} - return &staticModelsJSON{ - Claude: models, - Gemini: models, - Vertex: models, - GeminiCLI: models, - AIStudio: models, - CodexFree: models, - CodexTeam: models, - CodexPlus: models, - CodexPro: models, - Kimi: models, - Antigravity: models, - XAI: models, - } -} - -func findModelInfo(models []*ModelInfo, id string) *ModelInfo { - for _, model := range models { - if model != nil && model.ID == id { - return model - } - } - return nil -} - -func assertGPT55ModelInfo(t *testing.T, source string, model *ModelInfo) { - t.Helper() - - if model.ID != "gpt-5.5" { - t.Fatalf("%s id mismatch: got %q", source, model.ID) - } - if model.Object != "model" { - t.Fatalf("%s object mismatch: got %q", source, model.Object) - } - if model.Created != 1776902400 { - t.Fatalf("%s created timestamp mismatch: got %d", source, model.Created) - } - if model.OwnedBy != "openai" { - t.Fatalf("%s owned_by mismatch: got %q", source, model.OwnedBy) - } - if model.Type != "openai" { - t.Fatalf("%s type mismatch: got %q", source, model.Type) - } - if model.DisplayName != "GPT 5.5" { - t.Fatalf("%s display name mismatch: got %q", source, model.DisplayName) - } - if model.Version != "gpt-5.5" { - t.Fatalf("%s version mismatch: got %q", source, model.Version) - } - if model.Description != "Frontier model for complex coding, research, and real-world work." { - t.Fatalf("%s description mismatch: got %q", source, model.Description) - } - if model.ContextLength != 272000 { - t.Fatalf("%s context length mismatch: got %d", source, model.ContextLength) - } - if model.MaxCompletionTokens != 128000 { - t.Fatalf("%s max completion tokens mismatch: got %d", source, model.MaxCompletionTokens) - } - if len(model.SupportedParameters) != 1 || model.SupportedParameters[0] != "tools" { - t.Fatalf("%s supported parameters mismatch: got %v", source, model.SupportedParameters) - } - if model.Thinking == nil { - t.Fatalf("%s missing thinking support", source) - } - - want := []string{"low", "medium", "high", "xhigh"} - if len(model.Thinking.Levels) != len(want) { - t.Fatalf("%s thinking level count mismatch: got %d, want %d", source, len(model.Thinking.Levels), len(want)) - } - for i, level := range want { - if model.Thinking.Levels[i] != level { - t.Fatalf("%s thinking level %d mismatch: got %q, want %q", source, i, model.Thinking.Levels[i], level) - } - } -} diff --git a/sdk/cliproxy/auth/request_auth_prepare_test.go b/sdk/cliproxy/auth/request_auth_prepare_test.go index 3c91efb5..ccdedee0 100644 --- a/sdk/cliproxy/auth/request_auth_prepare_test.go +++ b/sdk/cliproxy/auth/request_auth_prepare_test.go @@ -8,8 +8,8 @@ import ( "sync/atomic" "testing" - "github.com/router-for-me/CLIProxyAPI/v6/internal/registry" - cliproxyexecutor "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/executor" + "github.com/router-for-me/CLIProxyAPI/v7/internal/registry" + cliproxyexecutor "github.com/router-for-me/CLIProxyAPI/v7/sdk/cliproxy/executor" ) type requestPrepareStore struct {