import { render, screen } from '@testing-library/react'; import { ErrorBoundary } from './ErrorBoundary'; it('致命错误保留主题、完整错误与重新加载风险', () => { vi.spyOn(console, 'error').mockImplementation(() => {}); localStorage.setItem('mujoco-platform-theme', 'light'); function Broken(): never { throw new Error('渲染失败'); } render( , ); expect(screen.getByRole('main')).toHaveClass('theme-light'); expect(screen.getByText('渲染失败')).toBeVisible(); expect(screen.getByText(/重新加载会丢失/)).toBeVisible(); expect(screen.getByRole('button', { name: '重新加载' })).toBeEnabled(); });