package server import "testing" func TestConfigFromEnvDefaultsVideoRouteToViduQ2(t *testing.T) { t.Setenv("POPIART_DEFAULT_VIDEO_MODEL", "") t.Setenv("POPIART_DEFAULT_IMAGE_MODEL", "") t.Setenv("POPIART_NEWAPI_BASE_URL", "") t.Setenv("POPIART_NEWAPI_TOKEN", "") t.Setenv("POPIART_DATA_DIR", "") t.Setenv("POPIART_SQLITE_PATH", "") t.Setenv("POPIART_SESSION_SECRET", "") t.Setenv("POPIART_SKILLHUB_DIR", "") cfg := ConfigFromEnv() if cfg.DefaultVideoModel != "viduq2" { t.Fatalf("expected default video model viduq2, got %q", cfg.DefaultVideoModel) } if cfg.DefaultImageModel != "gemini-3.1-flash-image-preview" { t.Fatalf("expected default image model gemini-3.1-flash-image-preview, got %q", cfg.DefaultImageModel) } } func TestInferRouteKeyForModelRecognizesViduAsVideo(t *testing.T) { cases := map[string]string{ "viduq2": "video.image2video", "vidu2.0": "video.image2video", "sora-2": "video.image2video", "runway-gen4": "video.image2video", "gpt-image-1": "image.text2image", } for modelID, want := range cases { if got := inferRouteKeyForModel(modelID, nil); got != want { t.Fatalf("inferRouteKeyForModel(%q) = %q, want %q", modelID, got, want) } } } func TestInferRouteKeyForModelRecognizesImageEditInputs(t *testing.T) { cases := []map[string]any{ {"image": "https://example.com/reference.jpg"}, {"image_url": "https://example.com/reference.jpg"}, {"reference_image_url": "https://example.com/reference.jpg"}, {"source_artifact_id": "art_123"}, } for _, input := range cases { if got := inferRouteKeyForModel("seedream-4-5-251128", input); got != "image.img2img" { t.Fatalf("inferRouteKeyForModel(seedream, %#v) = %q, want image.img2img", input, got) } } }