package agent import ( "context" "testing" ) func TestNewReturnsClaudeBackend(t *testing.T) { t.Parallel() b, err := New("claude", Config{ExecutablePath: "/nonexistent/claude"}) if err != nil { t.Fatalf("New(claude) error: %v", err) } if _, ok := b.(*claudeBackend); !ok { t.Fatalf("expected *claudeBackend, got %T", b) } } func TestNewReturnsCodexBackend(t *testing.T) { t.Parallel() b, err := New("codex", Config{ExecutablePath: "/nonexistent/codex"}) if err != nil { t.Fatalf("New(codex) error: %v", err) } if _, ok := b.(*codexBackend); !ok { t.Fatalf("expected *codexBackend, got %T", b) } } func TestNewRejectsUnknownType(t *testing.T) { t.Parallel() _, err := New("gpt", Config{}) if err == nil { t.Fatal("expected error for unknown agent type") } } func TestNewDefaultsLogger(t *testing.T) { t.Parallel() b, _ := New("claude", Config{}) cb := b.(*claudeBackend) if cb.cfg.Logger == nil { t.Fatal("expected non-nil logger") } } func TestDetectVersionFailsForMissingBinary(t *testing.T) { t.Parallel() _, err := DetectVersion(context.Background(), "/nonexistent/binary") if err == nil { t.Fatal("expected error for missing binary") } }