import { act } from 'react'; import { describe, expect, it } from 'vitest'; import { ReducedMotionProvider, useMotionPreference, } from './useReducedMotion'; import { render } from '../test/render'; function Probe(): JSX.Element { const motion = useMotionPreference(); return ( ); } describe('ReducedMotionProvider', () => { it('allows explicit reduced-motion preference without relying on system media queries', async () => { const result = await render( , ); const button = result.container.querySelector('button'); expect(button?.textContent).toBe('no-preference:false'); expect(button?.getAttribute('data-reduced')).toBe('false'); await act(async () => { button?.click(); }); expect(button?.textContent).toBe('reduce:true'); expect(button?.getAttribute('data-reduced')).toBe('true'); await result.unmount(); }); });