mirror of
https://github.com/router-for-me/CLIProxyAPIPlus.git
synced 2026-03-29 16:54:41 +00:00
55 lines
1.9 KiB
Go
55 lines
1.9 KiB
Go
package registry
|
|
|
|
import "testing"
|
|
|
|
func TestGetAvailableModelsReturnsClonedSnapshots(t *testing.T) {
|
|
r := newTestModelRegistry()
|
|
r.RegisterClient("client-1", "OpenAI", []*ModelInfo{{ID: "m1", OwnedBy: "team-a", DisplayName: "Model One"}})
|
|
|
|
first := r.GetAvailableModels("openai")
|
|
if len(first) != 1 {
|
|
t.Fatalf("expected 1 model, got %d", len(first))
|
|
}
|
|
first[0]["id"] = "mutated"
|
|
first[0]["display_name"] = "Mutated"
|
|
|
|
second := r.GetAvailableModels("openai")
|
|
if got := second[0]["id"]; got != "m1" {
|
|
t.Fatalf("expected cached snapshot to stay isolated, got id %v", got)
|
|
}
|
|
if got := second[0]["display_name"]; got != "Model One" {
|
|
t.Fatalf("expected cached snapshot to stay isolated, got display_name %v", got)
|
|
}
|
|
}
|
|
|
|
func TestGetAvailableModelsInvalidatesCacheOnRegistryChanges(t *testing.T) {
|
|
r := newTestModelRegistry()
|
|
r.RegisterClient("client-1", "OpenAI", []*ModelInfo{{ID: "m1", OwnedBy: "team-a", DisplayName: "Model One"}})
|
|
|
|
models := r.GetAvailableModels("openai")
|
|
if len(models) != 1 {
|
|
t.Fatalf("expected 1 model, got %d", len(models))
|
|
}
|
|
if got := models[0]["display_name"]; got != "Model One" {
|
|
t.Fatalf("expected initial display_name Model One, got %v", got)
|
|
}
|
|
|
|
r.RegisterClient("client-1", "OpenAI", []*ModelInfo{{ID: "m1", OwnedBy: "team-a", DisplayName: "Model One Updated"}})
|
|
models = r.GetAvailableModels("openai")
|
|
if got := models[0]["display_name"]; got != "Model One Updated" {
|
|
t.Fatalf("expected updated display_name after cache invalidation, got %v", got)
|
|
}
|
|
|
|
r.SuspendClientModel("client-1", "m1", "manual")
|
|
models = r.GetAvailableModels("openai")
|
|
if len(models) != 0 {
|
|
t.Fatalf("expected no available models after suspension, got %d", len(models))
|
|
}
|
|
|
|
r.ResumeClientModel("client-1", "m1")
|
|
models = r.GetAvailableModels("openai")
|
|
if len(models) != 1 {
|
|
t.Fatalf("expected model to reappear after resume, got %d", len(models))
|
|
}
|
|
}
|