19 lines
712 B
TypeScript
19 lines
712 B
TypeScript
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(
|
|
<ErrorBoundary>
|
|
<Broken />
|
|
</ErrorBoundary>,
|
|
);
|
|
expect(screen.getByRole('main')).toHaveClass('theme-light');
|
|
expect(screen.getByText('渲染失败')).toBeVisible();
|
|
expect(screen.getByText(/重新加载会丢失/)).toBeVisible();
|
|
expect(screen.getByRole('button', { name: '重新加载' })).toBeEnabled();
|
|
});
|