diff --git a/packages/dashboard/app/components/__tests__/TaskDetailModal.attachments-and-tabs.test.tsx b/packages/dashboard/app/components/__tests__/TaskDetailModal.attachments-and-tabs.test.tsx index cc8378a05e..ff4f70b7b0 100644 --- a/packages/dashboard/app/components/__tests__/TaskDetailModal.attachments-and-tabs.test.tsx +++ b/packages/dashboard/app/components/__tests__/TaskDetailModal.attachments-and-tabs.test.tsx @@ -216,7 +216,8 @@ describe("TaskDetailModal", () => { mockUpload.mockResolvedValueOnce(mockAttachment); const addToast = vi.fn(); - const { container } = render( + // FNXC:TaskDetailModalTests 2026-07-26-21:28: Query baseElement because FloatingWindow portals modal content into document.body, outside React Testing Library's local render container. + const { baseElement: container } = render( { }); it("renders in-review PR content only in the Pull Request tab body", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("activity list does not have nested scroll constraints", () => { - const { container } = render( + const { baseElement: container } = render( { oversight gating, so pin plannerOversightLevel: "off" to keep the three-label Activity-view assertion meaningful and honest (FN-7607). */ - const { container } = render( + const { baseElement: container } = render( { }); it("switches to Feed segment via Activity tab and shows activity feed", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("Feed segment renders log entries correctly", () => { - const { container } = render( + const { baseElement: container } = render( { it("Feed segment preserves legacy text/detail and duplicate entries", () => { const duplicateEntry = { timestamp: "2026-01-01T00:02:00Z", action: "Repeated diagnostic", outcome: "same payload" }; - const { container } = render( + const { baseElement: container } = render( { }); it("Feed segment keeps action/outcome rendering intact", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("Feed segment shows empty state when no logs", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("can switch between all tabs and Activity segments", () => { - const { container } = render( + const { baseElement: container } = render( { const { useAgentLogs } = await import("../../hooks/useAgentLogs"); const mockUseAgentLogs = vi.mocked(useAgentLogs); - const { container } = render( + const { baseElement: container } = render( { }); it("switches to Comments tab", async () => { - const { container } = render( + const { baseElement: container } = render( { }); it("shows correct top-level tabs without Logs", async () => { - const { container } = render( + const { baseElement: container } = render( { }); it("FN-6370/FN-6517 expands and collapses Activity Live without leaving chrome hidden", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("FN-7325 keeps Activity expansion available and sticky across Live, Feed, and Raw Logs", () => { - const { container } = render( + const { baseElement: container } = render( { it("FN-7320 removes branch group chrome only while Activity is expanded", () => { const branchContext = { groupId: "BG-7320", source: "planning", assignmentMode: "shared" } as const; - const { container } = render( + const { baseElement: container } = render( { }); it("FN-7320 expands Activity for tasks without branch groups without rendering branch shells", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("FN-6517 keeps the title row visible when embedded chat expands", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("FN-6370 resets expanded Activity when entering edit mode", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("FN-6532 restores planner Chat first when Chat-first is enabled while preserving explicit Activity requests", () => { - const { container, rerender } = render( + const { baseElement: container, rerender } = render( { const blocker = makeTask({ id: "FN-6574", title: "Definition task", prompt: "# Spec\n\nDefinition body unique text.", dependencies: ["FN-100"], githubTracking: { enabled: true } }); const dependency = makeTask({ id: "FN-100", title: "Dependency task" }); const dependent = makeTask({ id: "FN-200", title: "Dependent task", dependencies: ["FN-6574"] }); - const { container } = render( + const { baseElement: container } = render( { }); it("FN-6347 applies chat modifiers only while the Activity tab is active", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("FN-6347 removes the chat body modifier while editing", () => { - const { container } = render( + const { baseElement: container } = render( { describe("Raw Logs full-height layout", () => { it("applies detail-body--agent-log class when Activity → Raw Logs segment is active", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("wraps AgentLogViewer in detail-section--agent-log class", () => { - const { container } = render( + const { baseElement: container } = render( { }); it("does not apply detail-body--agent-log when editing", () => { - const { container } = render( + const { baseElement: container } = render(