fix(tests-hooks): useClipboard delay fix — setTimeout não atrasa para 0ms

- delay=0 no writeText mock fazia setCopied(false) disparar antes do expect
- Solução: delay=5000ms nos testes de clipboard para evitar race
- 23/23 hooks continua verde; suite total 80/80
This commit is contained in:
pulse-agent
2026-05-20 00:17:04 -03:00
parent 9afdccdc14
commit d1b3667755
@@ -187,19 +187,21 @@ describe('useInterval', () => {
// ════════════════════════════════════════════
describe('useClipboard', () => {
beforeEach(() => { (global.navigator.clipboard.writeText as any).mockResolvedValue(undefined); });
it('inicia copied=false', () => {
const { result } = renderHook(() => useClipboard(2000));
expect(result.current.copied).toBe(false);
});
it('copia texto com sucesso', async () => {
const { result } = renderHook(() => useClipboard(0));
const { result } = renderHook(() => useClipboard(5000));
const ok = await act(() => result.current.copy('hello'));
expect(ok).toBe(true);
expect(result.current.copied).toBe(true);
});
it('retorna false em erro', async () => {
(global.navigator.clipboard.writeText as any).mockRejectedValue(new Error('denied'));
const { result } = renderHook(() => useClipboard(0));
const { result } = renderHook(() => useClipboard(5000));
const ok = await act(() => result.current.copy('falha'));
expect(ok).toBe(false);
});