diff --git a/client/hooks/useAutoSave.test.jsx b/client/hooks/useAutoSave.test.ts similarity index 91% rename from client/hooks/useAutoSave.test.jsx rename to client/hooks/useAutoSave.test.ts index f6ff066..32b8253 100644 --- a/client/hooks/useAutoSave.test.jsx +++ b/client/hooks/useAutoSave.test.ts @@ -8,7 +8,7 @@ describe('useAutoSave', () => { afterEach(() => vi.useRealTimers()); it('debounces: only the latest payload is saved, once', async () => { - const save = vi.fn().mockResolvedValue(); + const save = vi.fn().mockResolvedValue(undefined); const { result } = renderHook(() => useAutoSave(save, 400)); act(() => { @@ -25,7 +25,7 @@ describe('useAutoSave', () => { }); it('per-call delay overrides the default', async () => { - const save = vi.fn().mockResolvedValue(); + const save = vi.fn().mockResolvedValue(undefined); const { result } = renderHook(() => useAutoSave(save, 400)); act(() => { result.current.schedule({ slow: true }, 900); }); @@ -36,7 +36,7 @@ describe('useAutoSave', () => { }); it('flush() saves a pending payload immediately and is a no-op when idle', async () => { - const save = vi.fn().mockResolvedValue(); + const save = vi.fn().mockResolvedValue(undefined); const { result } = renderHook(() => useAutoSave(save, 400)); await act(async () => { result.current.flush(); }); @@ -55,7 +55,7 @@ describe('useAutoSave', () => { it('reports error status when the save rejects, then recovers on next save', async () => { const save = vi.fn() .mockRejectedValueOnce(new Error('boom')) - .mockResolvedValueOnce(); + .mockResolvedValueOnce(undefined); const { result } = renderHook(() => useAutoSave(save, 100)); act(() => { result.current.schedule({ x: 1 }); }); @@ -68,7 +68,7 @@ describe('useAutoSave', () => { }); it('"saved" fades back to idle after 2 seconds', async () => { - const save = vi.fn().mockResolvedValue(); + const save = vi.fn().mockResolvedValue(undefined); const { result } = renderHook(() => useAutoSave(save, 100)); act(() => { result.current.schedule({ y: 1 }); }); @@ -80,7 +80,7 @@ describe('useAutoSave', () => { }); it('flushes a pending payload on unmount so edits are never lost', async () => { - const save = vi.fn().mockResolvedValue(); + const save = vi.fn().mockResolvedValue(undefined); const { result, unmount } = renderHook(() => useAutoSave(save, 900)); act(() => { result.current.schedule({ unsaved: true }); });