57 lines
1.9 KiB
Go
57 lines
1.9 KiB
Go
package backend_test
|
|
|
|
import (
|
|
"errors"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"gitea.maximumdirect.net/eric/promptkit/internal/backend"
|
|
"gitea.maximumdirect.net/eric/promptkit/internal/domain"
|
|
)
|
|
|
|
func TestEffectiveRegistryOwnsDefinitionsAndCapacityPolicies(t *testing.T) {
|
|
params := map[string]any{"nested": map[string]any{"enabled": true}}
|
|
registry, err := backend.NewEffectiveRegistry(map[string]domain.Backend{
|
|
" local.v1 ": {
|
|
Endpoint: "https://backend.example/v1", ExtraParams: params,
|
|
ConcurrencyLimit: 2, QueueCapacity: 3, QueueCapacitySet: true,
|
|
},
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
params["nested"].(map[string]any)["enabled"] = false
|
|
selected, err := registry.GetBackend(" local.v1 ")
|
|
if err != nil || selected.ID != " local.v1 " || selected.ExtraParams["nested"].(map[string]any)["enabled"] != true {
|
|
t.Fatalf("effective backend was not captured under its literal ID: %+v, %v", selected, err)
|
|
}
|
|
selected.ExtraParams["nested"].(map[string]any)["enabled"] = false
|
|
again, err := registry.GetBackend(" local.v1 ")
|
|
if err != nil || again.ExtraParams["nested"].(map[string]any)["enabled"] != true {
|
|
t.Fatalf("lookup exposed registry values: %+v, %v", again, err)
|
|
}
|
|
policies := registry.CapacityPolicies()
|
|
if !reflect.DeepEqual(policies, map[string]domain.BackendCapacityPolicy{
|
|
" local.v1 ": {ConcurrencyLimit: 2, QueueCapacity: 3},
|
|
}) {
|
|
t.Fatalf("capacity policy = %+v", policies)
|
|
}
|
|
delete(policies, " local.v1 ")
|
|
if len(registry.CapacityPolicies()) != 1 {
|
|
t.Fatal("capacity policy map exposed registry state")
|
|
}
|
|
}
|
|
|
|
func TestEffectiveRegistryMissingBackend(t *testing.T) {
|
|
registry, err := backend.NewEffectiveRegistry(nil)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, err := registry.GetBackend("missing"); !errors.Is(err, backend.ErrBackendNotFound) {
|
|
t.Fatalf("missing backend error = %v", err)
|
|
}
|
|
if _, err := registry.GetBackend("local.v1"); !errors.Is(err, backend.ErrBackendNotFound) {
|
|
t.Fatalf("trimmed lookup unexpectedly matched: %v", err)
|
|
}
|
|
}
|