package runner import "testing" func TestValidateVariableName(t *testing.T) { if err := ValidateVariableName("UpdateCount"); err != nil { t.Fatalf("UpdateCount: %v", err) } if err := ValidateVariableName("_x"); err != nil { t.Fatalf("_x: %v", err) } if err := ValidateVariableName(""); err == nil { t.Fatal("expected empty name error") } if err := ValidateVariableName("1bad"); err == nil { t.Fatal("expected invalid name error") } if err := ValidateVariableName("bad-name"); err == nil { t.Fatal("expected invalid name error") } } func TestExpandDollarVars(t *testing.T) { vars := map[string]string{"UpdateCount": "3", "Name": "web"} got := ExpandDollarVars("count=$UpdateCount host=${Name}-01 keep=$HOME", vars) want := "count=3 host=web-01 keep=$HOME" if got != want { t.Fatalf("got %q want %q", got, want) } if ExpandDollarVars("$Missing", nil) != "$Missing" { t.Fatal("nil vars should leave tokens unchanged") } }