import React from 'react'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { fireEvent, render, screen } from '@testing-library/react'; import { useHapticsPreference } from '../useHapticsPreference'; import { HAPTICS_STORAGE_KEY } from '../../lib/haptics'; function TestHarness() { const { enabled, setEnabled } = useHapticsPreference(); return ( ); } describe('useHapticsPreference', () => { beforeEach(() => { window.localStorage.removeItem(HAPTICS_STORAGE_KEY); Object.defineProperty(navigator, 'vibrate', { configurable: true, value: vi.fn(), }); }); it('toggles and persists preference', () => { render(); const button = screen.getByTestId('toggle'); expect(button).toHaveTextContent('on'); fireEvent.click(button); expect(button).toHaveTextContent('off'); expect(window.localStorage.getItem(HAPTICS_STORAGE_KEY)).toBe('0'); }); });