Failed conditions now explain skips in plain language (e.g. UpdateCount was 0) and truncate long captures so misconfigured apt listings cannot flood the UI.
34 lines
953 B
Go
34 lines
953 B
Go
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")
|
|
}
|
|
}
|