import { describe, it, expect, vi } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import { MermaidLazy } from '@/components/preview/MermaidLazy'; vi.mock('mermaid', () => ({ default: { initialize: vi.fn(), render: vi.fn().mockResolvedValue(''), }, })); describe('MermaidLazy', () => { it('renders an svg after mermaid resolves', async () => { render(); await waitFor(() => { expect(screen.getByTestId('mermaid-output').innerHTML).toContain(' { const mermaid = (await import('mermaid')).default as any; mermaid.render.mockRejectedValueOnce(new Error('mermaid failed')); render(); await waitFor(() => { expect(screen.getByText(/mermaid failed/i)).toBeInTheDocument(); }); }); });