package main import "testing" func TestParseLabelsFromLines(t *testing.T) { labels, err := parseLabels(` traefik.http.routers.{router}.priority=100 # comment traefik.http.routers.{router}.middlewares=tunnel-{tunKey}-headers `) if err != nil { t.Fatalf("parseLabels: %v", err) } if labels["traefik.http.routers.{router}.priority"] != "100" { t.Fatalf("expected priority label, got %#v", labels) } if labels["traefik.http.routers.{router}.middlewares"] != "tunnel-{tunKey}-headers" { t.Fatalf("expected middlewares label, got %#v", labels) } } func TestParseLabelsFromJSON(t *testing.T) { labels, err := parseLabels(`{" traefik.http.routers.{router}.priority ":" 100 "}`) if err != nil { t.Fatalf("parseLabels: %v", err) } if labels["traefik.http.routers.{router}.priority"] != "100" { t.Fatalf("expected trimmed JSON label, got %#v", labels) } } func TestParseLabelsRejectsInvalidLine(t *testing.T) { if _, err := parseLabels("not-a-label"); err == nil { t.Fatalf("expected invalid label line to fail") } }