mirror of
https://github.com/chenhg5/cc-connect.git
synced 2026-07-06 21:45:41 +08:00
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package codex
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestAvailableModels_FallbackToModelsCache(t *testing.T) {
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
http.Error(w, "forbidden", http.StatusForbidden)
|
|
}))
|
|
defer srv.Close()
|
|
|
|
tmp := t.TempDir()
|
|
cache := `{
|
|
"models": [
|
|
{"slug":"gpt-5.4","description":"Latest frontier agentic coding model.","visibility":"list","supported_in_api":true},
|
|
{"slug":"gpt-5.3-codex","description":"Great for coding","visibility":"list","supported_in_api":true},
|
|
{"slug":"hidden-internal","visibility":"hidden","supported_in_api":true},
|
|
{"slug":"tool-only","visibility":"list","supported_in_api":false}
|
|
]
|
|
}`
|
|
if err := os.WriteFile(tmp+"/models_cache.json", []byte(cache), 0o600); err != nil {
|
|
t.Fatalf("write models_cache.json: %v", err)
|
|
}
|
|
|
|
t.Setenv("CODEX_HOME", tmp)
|
|
t.Setenv("OPENAI_API_KEY", "test-key")
|
|
t.Setenv("OPENAI_BASE_URL", srv.URL)
|
|
|
|
a := &Agent{activeIdx: -1}
|
|
models := a.AvailableModels(context.Background())
|
|
if len(models) != 2 {
|
|
t.Fatalf("models length = %d, want 2, models=%v", len(models), models)
|
|
}
|
|
if models[0].Name != "gpt-5.4" || models[1].Name != "gpt-5.3-codex" {
|
|
t.Fatalf("models = %v, want [gpt-5.4 gpt-5.3-codex]", models)
|
|
}
|
|
}
|
|
|