import { render, waitFor } from "@testing-library/react"; import { describe, expect, it, vi } from "vitest"; import { MermaidBlock } from "@/components/MemoContent/MermaidBlock"; vi.mock("@/contexts/AuthContext", () => ({ useAuth: () => ({ userGeneralSetting: { theme: "default" }, }), })); const renderMermaid = vi.fn(async () => ({ svg: '' })); const initializeMermaid = vi.fn(); vi.mock("mermaid", () => ({ default: { initialize: initializeMermaid, render: renderMermaid, }, })); const codeElement = (content: string) => {content}; describe("MermaidBlock", () => { it("clears rendered output when code content becomes empty", async () => { const { container, rerender } = render({codeElement("graph TD; A-->B")}); await waitFor(() => expect(container.querySelector(".mermaid-diagram")).not.toBeNull()); rerender({codeElement("")}); await waitFor(() => expect(container.querySelector(".mermaid-diagram")).toBeNull()); }); });