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

78 lines
2.1 KiB
Go

package agents
import (
"slices"
"strings"
"testing"
)
func TestCodexACPRuntimeNoLongerBindMountsHostHome(t *testing.T) {
a := NewCodexACP()
rt := a.Runtime()
for _, m := range rt.Mounts {
if strings.Contains(m.Source, "{home}") {
t.Fatalf("codex Mounts unexpectedly references {home}: %+v", m)
}
}
}
func TestCodexACP_PermissionSettings_CuratedConfigOverrides(t *testing.T) {
settings := NewCodexACP().PermissionSettings()
want := map[string]struct {
flagText string
defaultOn bool
}{
"config_approval_policy_never": {
flagText: "-c approval_policy=never", defaultOn: false,
},
"config_sandbox_disk_full_read": {
flagText: CodexACPSandboxDiskFullReadCLIFlag, defaultOn: false,
},
}
if len(settings) != len(want) {
t.Fatalf("PermissionSettings() len = %d, want %d: %#v", len(settings), len(want), settings)
}
for key, spec := range want {
s, ok := settings[key]
if !ok {
t.Fatalf("missing %q in PermissionSettings()", key)
}
if !s.Supported || s.ApplyMethod != PermissionApplyMethodCLIFlag {
t.Fatalf("%q: unsupported or wrong apply method: %+v", key, s)
}
if s.Default != spec.defaultOn {
t.Fatalf("%q: Default=%v, want %v", key, s.Default, spec.defaultOn)
}
gotFlag := s.CLIFlag
if s.CLIFlagValue != "" {
gotFlag = s.CLIFlag + " " + s.CLIFlagValue
}
if gotFlag != spec.flagText {
t.Fatalf("%q: flag text %q, want %q", key, gotFlag, spec.flagText)
}
}
}
func TestCodexACP_BuildCommand_NoCodexCLIFlags(t *testing.T) {
want := []string{"npx", "-y", codexACPPkg}
cmd := NewCodexACP().BuildCommand(CommandOptions{
PermissionValues: map[string]bool{PermissionKeyAutoApprove: true},
})
if !slices.Equal(cmd.Args(), want) {
t.Fatalf("BuildCommand = %#v, want %#v", cmd.Args(), want)
}
}
func TestCodexACPSessionDirTemplate(t *testing.T) {
a := NewCodexACP()
cfg := a.Runtime().SessionConfig
if cfg.SessionDirTemplate != "{home}/.codex" {
t.Fatalf("SessionDirTemplate = %q, want %q", cfg.SessionDirTemplate, "{home}/.codex")
}
if cfg.SessionDirTarget != "/root/.codex" {
t.Fatalf("SessionDirTarget = %q, want %q", cfg.SessionDirTarget, "/root/.codex")
}
}