import { fireEvent, render, screen } from "@testing-library/react"; import { afterEach, describe, expect, it, vi } from "vitest"; const mocks = vi.hoisted(() => ({ refetch: vi.fn(), useCommitDetail: vi.fn(() => ({ files: null, commit: null, loading: false, error: "Commit detail unavailable", refetch: mocks.refetch, })), })); vi.mock("@/components/state-provider", () => ({ useAppStore: (selector: (state: unknown) => unknown) => selector({ tasks: { activeSessionId: null } }), })); vi.mock("@/hooks/domains/session/use-session-commits", () => ({ useSessionCommits: () => ({ commits: [] }), })); vi.mock("@/hooks/domains/session/use-commit-detail", () => ({ useCommitDetail: mocks.useCommitDetail, })); vi.mock("@/hooks/use-panel-actions", () => ({ usePanelActions: () => ({ openFile: vi.fn() }), })); vi.mock("@/lib/layout/panel-portal-manager", () => ({ setPanelTitle: vi.fn(), })); vi.mock("./panel-primitives", () => ({ PanelRoot: ({ children }: { children: React.ReactNode }) =>