better-argo-tunnels/cmd/client/main_test.go

39 lines
1.0 KiB
Go

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")
}
}