chultun/internal/budget/launch_test.go

35 lines
1 KiB
Go

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