Files
Containr/app/backend/internal/api/templates_test.go
T
2026-04-10 12:02:36 +02:00

74 lines
1.9 KiB
Go

package api
import "testing"
func TestNormalizeTemplateServiceType(t *testing.T) {
valid := []string{"web", "worker", "database", "cron"}
for _, value := range valid {
got, err := normalizeTemplateServiceType(value)
if err != nil {
t.Fatalf("normalizeTemplateServiceType(%q) returned error: %v", value, err)
}
if got != value {
t.Fatalf("normalizeTemplateServiceType(%q) = %q, want %q", value, got, value)
}
}
_, err := normalizeTemplateServiceType("unsupported")
if err == nil {
t.Fatalf("expected unsupported template type to return error")
}
}
func TestMergeTemplateVariables(t *testing.T) {
env, secretKeys, missing := mergeTemplateVariables(
map[string]string{
"DEFAULT_ONE": "a",
"DEFAULT_TWO": "b",
},
[]TemplateVariable{
{
Key: "REQ",
Default: "",
Required: true,
Secret: true,
},
{
Key: "OPTIONAL",
Default: "fallback",
Required: false,
Secret: false,
},
},
map[string]string{
"REQ": "provided",
"EXTRA_KEY": "custom",
},
)
if len(missing) != 0 {
t.Fatalf("expected no missing required vars, got %v", missing)
}
if env["REQ"] != "provided" {
t.Fatalf("expected REQ=provided, got %q", env["REQ"])
}
if env["OPTIONAL"] != "fallback" {
t.Fatalf("expected OPTIONAL=fallback, got %q", env["OPTIONAL"])
}
if env["EXTRA_KEY"] != "custom" {
t.Fatalf("expected EXTRA_KEY=custom, got %q", env["EXTRA_KEY"])
}
if !secretKeys["REQ"] {
t.Fatalf("expected REQ to be marked secret")
}
}
func TestResolveTemplateRuntimeImage(t *testing.T) {
if got := resolveTemplateRuntimeImage("dragonfly"); got == "dragonfly" || got == "" {
t.Fatalf("expected dragonfly runtime to map to a concrete image, got %q", got)
}
if got := resolveTemplateRuntimeImage("custom-runtime"); got != "custom-runtime" {
t.Fatalf("expected unknown runtime passthrough, got %q", got)
}
}