import { render, screen } from '@testing-library/react' import { afterEach, describe, expect, it } from 'vitest' import RouteBlockerOverlay, { useOverlayStore } from '@/components/RouteBlockerOverlay' describe ('RouteBlockerOverlay', () => { afterEach (() => { useOverlayStore.setState ({ active: false }) document.body.style.overflow = '' document.body.removeAttribute ('aria-busy') }) it ('renders nothing while inactive', () => { useOverlayStore.setState ({ active: false }) const { container } = render () expect (container).toBeEmptyDOMElement () }) it ('renders a blocking progressbar and marks the body busy while active', () => { useOverlayStore.setState ({ active: true }) render () expect (screen.getByRole ('progressbar', { name: 'Loading' })).toBeInTheDocument () expect (document.body).toHaveAttribute ('aria-busy', 'true') expect (document.body.style.overflow).toBe ('hidden') }) })