package budget import ( "reflect" "strings" "testing" ) func TestRunArgs(t *testing.T) { command := []string{"--", "rg", "--glob", "*.go", "a b", "-"} args, err := runArgs(testConfig(), "unrestricted", "123abc", command) if err != nil { t.Fatal(err) } wantTail := []string{"--", "rg", "--glob", "*.go", "a b", "-"} if !reflect.DeepEqual(args[len(args)-len(wantTail):], wantTail) { t.Fatal("command arguments changed", args) } if !strings.Contains(strings.Join(args, "\n"), "--property=CPUQuota=\n") { t.Fatal("quota wasn't reset") } args, err = runArgs(testConfig(), "search", "123abc", []string{"rg", "pattern", "path"}) if err != nil { t.Fatal(err) } if !strings.Contains(strings.Join(args, "\n"), "--slice=search.slice\n") { t.Fatal("search didn't join shared slice") } if _, err := runArgs(testConfig(), "compute", "123abc", []string{"--"}); err == nil { t.Fatal("empty command accepted") } if _, err := runArgs(testConfig(), "missing", "123abc", []string{"rg"}); err == nil { t.Fatal("unknown profile accepted") } }