summaryrefslogtreecommitdiff
path: root/internal/askcli/taskexec_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/askcli/taskexec_test.go')
-rw-r--r--internal/askcli/taskexec_test.go66
1 files changed, 65 insertions, 1 deletions
diff --git a/internal/askcli/taskexec_test.go b/internal/askcli/taskexec_test.go
index 2492aae..90da61a 100644
--- a/internal/askcli/taskexec_test.go
+++ b/internal/askcli/taskexec_test.go
@@ -13,7 +13,7 @@ import (
func TestExecutorTaskArgs(t *testing.T) {
exec_ := NewExecutor("ask")
- args, err := exec_.taskArgs("/tmp/work/hexai", []string{"list", "limit:1"})
+ args, err := exec_.taskArgs(context.Background(), "/tmp/work/hexai", []string{"list", "limit:1"})
if err != nil {
t.Fatalf("taskArgs returned error: %v", err)
}
@@ -23,6 +23,44 @@ func TestExecutorTaskArgs(t *testing.T) {
}
}
+func TestExecutorTaskArgs_NoAgentScope(t *testing.T) {
+ exec_ := NewExecutor("ask")
+ ctx := contextWithTaskScope(context.Background(), taskScopeNoAgent)
+ args, err := exec_.taskArgs(ctx, "/tmp/work/hexai", []string{"list", "limit:1"})
+ if err != nil {
+ t.Fatalf("taskArgs returned error: %v", err)
+ }
+ want := []string{"rc.verbose=nothing", "rc.confirmation=off", "project:hexai", "-agent", "list", "limit:1"}
+ if !reflect.DeepEqual(args, want) {
+ t.Fatalf("task args = %v, want %v", args, want)
+ }
+}
+
+func TestExecutorTaskArgs_AddDefaultScope(t *testing.T) {
+ exec_ := NewExecutor("ask")
+ args, err := exec_.taskArgs(context.Background(), "/tmp/work/hexai", []string{"add", "rc.verbose=nothing", "rc.verbose=new-uuid", "new task"})
+ if err != nil {
+ t.Fatalf("taskArgs returned error: %v", err)
+ }
+ want := []string{"rc.verbose=nothing", "rc.confirmation=off", "project:hexai", "add", "rc.verbose=nothing", "rc.verbose=new-uuid", "+agent", "new task"}
+ if !reflect.DeepEqual(args, want) {
+ t.Fatalf("task args = %v, want %v", args, want)
+ }
+}
+
+func TestExecutorTaskArgs_AddNoAgentScope(t *testing.T) {
+ exec_ := NewExecutor("ask")
+ ctx := contextWithTaskScope(context.Background(), taskScopeNoAgent)
+ args, err := exec_.taskArgs(ctx, "/tmp/work/hexai", []string{"add", "rc.verbose=nothing", "rc.verbose=new-uuid", "new task"})
+ if err != nil {
+ t.Fatalf("taskArgs returned error: %v", err)
+ }
+ want := []string{"rc.verbose=nothing", "rc.confirmation=off", "project:hexai", "add", "rc.verbose=nothing", "rc.verbose=new-uuid", "new task"}
+ if !reflect.DeepEqual(args, want) {
+ t.Fatalf("task args = %v, want %v", args, want)
+ }
+}
+
func TestExecutorRun_InjectsProjectFilterAndAgentTag(t *testing.T) {
var gotName string
var gotArgs []string
@@ -53,6 +91,32 @@ func TestExecutorRun_InjectsProjectFilterAndAgentTag(t *testing.T) {
}
}
+func TestExecutorRun_InjectsProjectFilterAndNoAgentTag(t *testing.T) {
+ var gotArgs []string
+ exec_ := Executor{
+ commandName: "ask",
+ findBinary: func() (string, error) { return "/usr/bin/task", nil },
+ detectRepoRoot: func(context.Context) (string, error) { return "/tmp/work/hexai", nil },
+ runCommand: func(_ context.Context, name string, args []string, stdin io.Reader, stdout, stderr io.Writer) error {
+ gotArgs = append([]string(nil), args...)
+ return nil
+ },
+ }
+
+ ctx := contextWithTaskScope(context.Background(), taskScopeNoAgent)
+ exitCode, err := exec_.Run(ctx, []string{"list", "limit:1"}, strings.NewReader("in"), &bytes.Buffer{}, &bytes.Buffer{})
+ if err != nil {
+ t.Fatalf("Run returned error: %v", err)
+ }
+ if exitCode != 0 {
+ t.Fatalf("exitCode = %d, want 0", exitCode)
+ }
+ wantArgs := []string{"rc.verbose=nothing", "rc.confirmation=off", "project:hexai", "-agent", "list", "limit:1"}
+ if !reflect.DeepEqual(gotArgs, wantArgs) {
+ t.Fatalf("task args = %v, want %v", gotArgs, wantArgs)
+ }
+}
+
func TestExecutorRun_OutsideGitRepo_IsActionable(t *testing.T) {
exec_ := Executor{
commandName: "ask",