// @vitest-environment jsdom import { act, forwardRef, useImperativeHandle, type ForwardedRef } from "react"; import { flushSync } from "react-dom"; import { createRoot, type Root } from "react-dom/client"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import type { IssueDocument } from "@paperclipai/shared"; import type { IssueThreadInteraction, RequestConfirmationInteraction, } from "@/lib/issue-thread-interactions"; import { ThemeProvider } from "@/context/ThemeContext"; import { TooltipProvider } from "@/components/ui/tooltip"; import { expiredSecretProposalInteraction, pendingAskUserQuestionsInteraction, pendingRequestCheckboxConfirmationInteraction, pendingRequestItemVerdictsInteraction, } from "@/fixtures/issueThreadInteractionFixtures"; import { TaskChatInteractionCard } from "./TaskChatInteractionCard"; import { TaskChatThreadView } from "./TaskChatThreadView"; import type { TaskChatInteractionItem } from "./task-chat-model"; vi.mock("@/components/MarkdownEditor", () => ({ MarkdownEditor: forwardRef(function MockMarkdownEditor( { value, onChange, placeholder, imageUploadHandler, }: { value: string; onChange: (value: string) => void; placeholder?: string; imageUploadHandler?: (file: File) => Promise; }, ref: ForwardedRef, ) { useImperativeHandle(ref, () => ({ insertMarkdown: (markdown: string) => onChange(`${value}${markdown}`), focus: () => {}, })); return (