Add projects
This commit is contained in:
parent
2d3a9ad623
commit
8b607dd700
1802 changed files with 503346 additions and 2 deletions
100
backend/internal/registry/model_registry_grok_test.go
Normal file
100
backend/internal/registry/model_registry_grok_test.go
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
package registry
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestGetAvailableModelInfosPreservesMetadataAndAvailability(t *testing.T) {
|
||||
modelRegistry := newTestModelRegistry()
|
||||
modelRegistry.RegisterClient("openai-client", "openai", []*ModelInfo{
|
||||
{ID: "z-model", DisplayName: "Z Model", ContextLength: 1000},
|
||||
})
|
||||
modelRegistry.RegisterClient("claude-client", "claude", []*ModelInfo{
|
||||
{ID: "a-model", DisplayName: "A Model", ContextLength: 2000, Thinking: &ThinkingSupport{Levels: []string{"low", "high"}}},
|
||||
})
|
||||
modelRegistry.RegisterClient("xai-client", "xai", []*ModelInfo{{ID: "x-model"}})
|
||||
modelRegistry.RegisterClient("suspended-client", "xai", []*ModelInfo{{ID: "hidden-model"}})
|
||||
modelRegistry.SuspendClientModel("suspended-client", "hidden-model", "manual")
|
||||
|
||||
models := modelRegistry.GetAvailableModelInfos()
|
||||
if len(models) != 3 {
|
||||
t.Fatalf("available model count = %d, want 3", len(models))
|
||||
}
|
||||
if models[0].ID != "a-model" || models[1].ID != "x-model" || models[2].ID != "z-model" {
|
||||
t.Fatalf("model order = [%s, %s, %s], want [a-model, x-model, z-model]", models[0].ID, models[1].ID, models[2].ID)
|
||||
}
|
||||
if models[0].Thinking == nil || len(models[0].Thinking.Levels) != 2 || models[0].Thinking.Levels[1] != "high" {
|
||||
t.Fatalf("thinking metadata = %#v", models[0].Thinking)
|
||||
}
|
||||
for _, model := range models {
|
||||
if model.ID == "hidden-model" {
|
||||
t.Fatalf("suspended model returned: %#v", model)
|
||||
}
|
||||
}
|
||||
|
||||
models[0].Thinking.Levels[0] = "mutated"
|
||||
fresh := modelRegistry.GetAvailableModelInfos()
|
||||
if fresh[0].Thinking.Levels[0] != "low" {
|
||||
t.Fatalf("snapshot was not cloned: %#v", fresh[0].Thinking.Levels)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetAvailableModelInfosHonorsQuotaAndSuspensionAvailability(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
clientCount int
|
||||
quotaExceeded bool
|
||||
quotaSuspended bool
|
||||
manualSuspended bool
|
||||
wantModelAvailable bool
|
||||
}{
|
||||
{
|
||||
name: "quota cooldown remains listed",
|
||||
quotaExceeded: true,
|
||||
wantModelAvailable: true,
|
||||
},
|
||||
{
|
||||
name: "quota suspension reason remains listed",
|
||||
quotaSuspended: true,
|
||||
wantModelAvailable: true,
|
||||
},
|
||||
{
|
||||
name: "quota and non-quota suspensions are hidden",
|
||||
clientCount: 2,
|
||||
quotaExceeded: true,
|
||||
quotaSuspended: true,
|
||||
manualSuspended: true,
|
||||
wantModelAvailable: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, testCase := range tests {
|
||||
t.Run(testCase.name, func(t *testing.T) {
|
||||
const modelID = "shared-model"
|
||||
modelRegistry := newTestModelRegistry()
|
||||
modelRegistry.RegisterClient("quota-client", "openai", []*ModelInfo{{ID: modelID}})
|
||||
if testCase.clientCount > 1 {
|
||||
modelRegistry.RegisterClient("manual-client", "openai", []*ModelInfo{{ID: modelID}})
|
||||
}
|
||||
if testCase.quotaExceeded {
|
||||
modelRegistry.SetModelQuotaExceeded("quota-client", modelID)
|
||||
}
|
||||
if testCase.quotaSuspended {
|
||||
modelRegistry.SuspendClientModel("quota-client", modelID, "quota")
|
||||
}
|
||||
if testCase.manualSuspended {
|
||||
modelRegistry.SuspendClientModel("manual-client", modelID, "manual")
|
||||
}
|
||||
|
||||
infos := modelRegistry.GetAvailableModelInfos()
|
||||
gotInfoAvailable := len(infos) == 1 && infos[0] != nil && infos[0].ID == modelID
|
||||
if gotInfoAvailable != testCase.wantModelAvailable {
|
||||
t.Fatalf("GetAvailableModelInfos() available = %v, want %v; models = %#v", gotInfoAvailable, testCase.wantModelAvailable, infos)
|
||||
}
|
||||
|
||||
models := modelRegistry.GetAvailableModels("openai")
|
||||
gotListAvailable := len(models) == 1 && models[0]["id"] == modelID
|
||||
if gotListAvailable != testCase.wantModelAvailable {
|
||||
t.Fatalf("GetAvailableModels() available = %v, want %v; models = %#v", gotListAvailable, testCase.wantModelAvailable, models)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue