summaryrefslogtreecommitdiff
path: root/internal/adminapi/model_page_test.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--internal/adminapi/model_page_test.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/internal/adminapi/model_page_test.go b/internal/adminapi/model_page_test.go
new file mode 100644
index 0000000..eac6d7d
--- /dev/null
+++ b/internal/adminapi/model_page_test.go
@@ -0,0 +1,44 @@
+package adminapi
+
+import (
+ "strings"
+ "testing"
+ "time"
+
+ "aigw/internal/controlplane"
+)
+
+func TestBuildPublicModelPageDataUsesSupportedProtocolsWithoutInternalRouting(t *testing.T) {
+ released := time.Date(2026, time.August, 1, 0, 0, 0, 0, time.UTC)
+ model := controlplane.PublicModel{
+ PublicID: "openai/text-embedding-3-small", DisplayName: "Text Embedding 3 Small",
+ Description: "Embeddings for search.", OwnedBy: "OpenAI", InputModalities: []string{"text"},
+ OutputModalities: []string{"embedding"}, Capabilities: []string{"embeddings"}, Regions: []string{"global"},
+ Lifecycle: "active", ReleasedAt: &released, PriceCurrency: "usd", InputPriceMicrosPerMillion: 20_000,
+ ContextWindow: 8192, SupportedWireAPIs: []string{"embeddings"}, ProviderCount: 2,
+ AvailableProviderCount: 1, HealthStatus: "degraded",
+ }
+ data := buildPublicModelPageData(model, "https://console.example.test/admin/", "https://api.example.test/", "/admin", true)
+ if data.CanonicalURL != "https://console.example.test/admin/models/openai/text-embedding-3-small" {
+ t.Fatalf("canonical=%q", data.CanonicalURL)
+ }
+ if data.CSSURL != "/admin/models.css" || data.CatalogURL != "/admin/models" {
+ t.Fatalf("cross-origin static URL: css=%q catalog=%q", data.CSSURL, data.CatalogURL)
+ }
+ if len(data.Examples) != 1 || data.Examples[0].Endpoint != "/v1/embeddings" {
+ t.Fatalf("examples=%+v", data.Examples)
+ }
+ if !strings.Contains(data.Examples[0].Code, `"model":"openai/text-embedding-3-small"`) ||
+ strings.Contains(data.Examples[0].Code, "provider") || strings.Contains(data.Examples[0].Code, "upstream") {
+ t.Fatalf("unexpected public example: %s", data.Examples[0].Code)
+ }
+ if data.HealthLabel != "1/2 routes" || data.InputPrice != "USD 0.02" || data.ContextWindow != "8,192" {
+ t.Fatalf("unexpected page projection: %+v", data)
+ }
+}
+
+func TestEscapeModelPathPreservesHierarchyAndEscapesSegments(t *testing.T) {
+ if got := escapeModelPath("owner/model name"); got != "owner/model%20name" {
+ t.Fatalf("escapeModelPath=%q", got)
+ }
+}