import { render } from "@testing-library/react"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { MemoMarkdownRenderer } from "@/components/MemoContent/MemoMarkdownRenderer"; import { hasMathSyntax } from "@/components/MemoContent/math"; vi.mock("@/components/MemoContent/math", () => ({ hasMathSyntax: vi.fn(() => false), })); describe(" memoization", () => { beforeEach(() => { vi.mocked(hasMathSyntax).mockClear(); }); it("does not parse again when only the resolved mention Set identity changes", () => { const { rerender } = render( , ); rerender(); expect(hasMathSyntax).toHaveBeenCalledTimes(1); }); it("renders again when the relevant resolved mentions change", () => { const { rerender } = render( ()} />, ); rerender(); expect(hasMathSyntax).toHaveBeenCalledTimes(2); }); });