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:
@@ -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);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user