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', () => {
|
describe('useClipboard', () => {
|
||||||
|
beforeEach(() => { (global.navigator.clipboard.writeText as any).mockResolvedValue(undefined); });
|
||||||
|
|
||||||
it('inicia copied=false', () => {
|
it('inicia copied=false', () => {
|
||||||
const { result } = renderHook(() => useClipboard(2000));
|
const { result } = renderHook(() => useClipboard(2000));
|
||||||
expect(result.current.copied).toBe(false);
|
expect(result.current.copied).toBe(false);
|
||||||
});
|
});
|
||||||
it('copia texto com sucesso', async () => {
|
it('copia texto com sucesso', async () => {
|
||||||
const { result } = renderHook(() => useClipboard(0));
|
const { result } = renderHook(() => useClipboard(5000));
|
||||||
const ok = await act(() => result.current.copy('hello'));
|
const ok = await act(() => result.current.copy('hello'));
|
||||||
expect(ok).toBe(true);
|
expect(ok).toBe(true);
|
||||||
expect(result.current.copied).toBe(true);
|
expect(result.current.copied).toBe(true);
|
||||||
});
|
});
|
||||||
it('retorna false em erro', async () => {
|
it('retorna false em erro', async () => {
|
||||||
(global.navigator.clipboard.writeText as any).mockRejectedValue(new Error('denied'));
|
(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'));
|
const ok = await act(() => result.current.copy('falha'));
|
||||||
expect(ok).toBe(false);
|
expect(ok).toBe(false);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user