Files
2026-06-02 23:14:41 +08:00

73 lines
1.9 KiB
Go

package acp
import (
"testing"
"github.com/chenhg5/cc-connect/core"
)
func TestNew_DisplayNameDefault(t *testing.T) {
a, err := New(map[string]any{"command": "true"})
if err != nil {
t.Fatal(err)
}
agent := a.(*Agent)
if got := agent.CLIDisplayName(); got != "ACP" {
t.Fatalf("CLIDisplayName = %q, want ACP", got)
}
}
func TestNew_DisplayNameCustom(t *testing.T) {
a, err := New(map[string]any{
"command": "true",
"display_name": "Copilot ACP",
})
if err != nil {
t.Fatal(err)
}
agent := a.(*Agent)
if got := agent.CLIDisplayName(); got != "Copilot ACP" {
t.Fatalf("CLIDisplayName = %q, want Copilot ACP", got)
}
}
func TestWorkspaceAgentOptions(t *testing.T) {
a, err := New(map[string]any{
"command": "true",
"args": []any{"--acp", "--stdio"},
"env": map[string]any{"FOO": "bar", "COPILOT_VALUE": "a=b"},
"auth_method": "cursor_login",
"display_name": "Copilot ACP",
})
if err != nil {
t.Fatal(err)
}
agent := a.(*Agent)
agent.SetSessionEnv([]string{"SESSION_ONLY=1"})
snapshotter, ok := a.(core.WorkspaceAgentOptionSnapshotter)
if !ok {
t.Fatalf("agent does not implement WorkspaceAgentOptionSnapshotter")
}
opts := snapshotter.WorkspaceAgentOptions()
if got, _ := opts["command"].(string); got != "true" {
t.Fatalf("command = %q, want true", got)
}
gotArgs, _ := opts["args"].([]string)
if len(gotArgs) != 2 || gotArgs[0] != "--acp" || gotArgs[1] != "--stdio" {
t.Fatalf("args = %#v, want [--acp --stdio]", gotArgs)
}
gotEnv, _ := opts["env"].(map[string]string)
if len(gotEnv) != 2 || gotEnv["FOO"] != "bar" || gotEnv["COPILOT_VALUE"] != "a=b" {
t.Fatalf("env = %#v, want config env only", gotEnv)
}
if got, _ := opts["auth_method"].(string); got != "cursor_login" {
t.Fatalf("auth_method = %q, want cursor_login", got)
}
if got, _ := opts["display_name"].(string); got != "Copilot ACP" {
t.Fatalf("display_name = %q, want Copilot ACP", got)
}
}