// @vitest-environment jsdom import { render, screen } from '@testing-library/react' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { ErrorBoundary } from './ErrorBoundary' function Boom(): never { throw new Error('kaboom detail') } describe('ErrorBoundary', () => { beforeEach(() => { // React logs the caught error; silence it so the run stays clean. vi.spyOn(console, 'error').mockImplementation(() => {}) }) afterEach(() => { vi.restoreAllMocks() }) it('renders children when nothing throws', () => { render(

all good

) expect(screen.getByText('all good')).toBeTruthy() }) it('shows the error message instead of white-screening when a child throws', () => { render() expect(screen.getByText('This screen hit an error')).toBeTruthy() expect(screen.getByText('kaboom detail')).toBeTruthy() expect(screen.getByRole('button', { name: 'Reload' })).toBeTruthy() }) })