Files
kandev/apps/backend/internal/agent/agents/codex_acp_cliflags_test.go
T

60 lines
1.4 KiB
Go

package agents
import (
"reflect"
"testing"
"github.com/kandev/kandev/internal/agent/settings/cliflags"
"github.com/kandev/kandev/internal/agent/settings/models"
)
func TestCodexACP_CLIFlagTokenise(t *testing.T) {
t.Parallel()
cases := []struct {
name string
raw string
want []string
}{
{
name: "approval_policy",
raw: "-c approval_policy=never",
want: []string{"-c", "approval_policy=never"},
},
{
name: "sandbox_permissions",
raw: CodexACPSandboxDiskFullReadCLIFlag,
want: []string{"-c", `sandbox_permissions=["disk-full-read-access"]`},
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
got, err := cliflags.Tokenise(tc.raw)
if err != nil {
t.Fatalf("Tokenise: %v", err)
}
if !reflect.DeepEqual(got, tc.want) {
t.Fatalf("tokens = %#v, want %#v", got, tc.want)
}
})
}
}
func TestCodexACP_ResolveSeededCLIFlags_DefaultDisabled(t *testing.T) {
flags := make([]models.CLIFlag, 0, len(codexACPPermSettings))
for _, s := range codexACPPermSettings {
flagText := s.CLIFlag
if s.CLIFlagValue != "" {
flagText = s.CLIFlag + " " + s.CLIFlagValue
}
flags = append(flags, models.CLIFlag{Flag: flagText, Enabled: s.Default})
}
got, err := cliflags.Resolve(flags)
if err != nil {
t.Fatalf("Resolve: %v", err)
}
if got != nil {
t.Fatalf("expected no argv when defaults disabled, got %#v", got)
}
}