初始化仓库
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package acp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Exercises real Cursor CLI "agent acp" when installed (~/.local/bin/agent).
|
||||
// Requires prior `agent login` (or CURSOR_API_KEY / CURSOR_AUTH_TOKEN). Skips if binary missing.
|
||||
func TestCursorCLI_ACPHandshake(t *testing.T) {
|
||||
if testing.Short() {
|
||||
t.Skip("short mode")
|
||||
}
|
||||
if os.Getenv("CI") != "" {
|
||||
t.Skip("skipping real Cursor CLI ACP handshake in CI (requires local agent and login)")
|
||||
}
|
||||
home, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
t.Skip("home dir:", err)
|
||||
}
|
||||
agentBin := filepath.Join(home, ".local/bin/agent")
|
||||
if _, err := os.Stat(agentBin); err != nil {
|
||||
t.Skip("Cursor agent not at", agentBin)
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 90*time.Second)
|
||||
defer cancel()
|
||||
|
||||
s, err := newACPSession(ctx, acpSessionConfig{
|
||||
command: agentBin,
|
||||
args: []string{"acp"},
|
||||
workDir: t.TempDir(),
|
||||
authMethod: "cursor_login",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("handshake failed (is `agent login` done?): %v", err)
|
||||
}
|
||||
defer func() { _ = s.Close() }()
|
||||
|
||||
if s.CurrentSessionID() == "" {
|
||||
t.Fatal("empty ACP session id after handshake")
|
||||
}
|
||||
t.Logf("ACP session id: %s", s.CurrentSessionID())
|
||||
}
|
||||
Reference in New Issue
Block a user