refactor(ts): useAutoSave test → .test.ts; completes components/hooks conversion
client/hooks and all loose components/ now fully TS. Only pages/ remain.
This commit is contained in:
parent
b48a34ee33
commit
57cac30029
|
|
@ -8,7 +8,7 @@ describe('useAutoSave', () => {
|
||||||
afterEach(() => vi.useRealTimers());
|
afterEach(() => vi.useRealTimers());
|
||||||
|
|
||||||
it('debounces: only the latest payload is saved, once', async () => {
|
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));
|
const { result } = renderHook(() => useAutoSave(save, 400));
|
||||||
|
|
||||||
act(() => {
|
act(() => {
|
||||||
|
|
@ -25,7 +25,7 @@ describe('useAutoSave', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('per-call delay overrides the default', async () => {
|
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));
|
const { result } = renderHook(() => useAutoSave(save, 400));
|
||||||
|
|
||||||
act(() => { result.current.schedule({ slow: true }, 900); });
|
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 () => {
|
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));
|
const { result } = renderHook(() => useAutoSave(save, 400));
|
||||||
|
|
||||||
await act(async () => { result.current.flush(); });
|
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 () => {
|
it('reports error status when the save rejects, then recovers on next save', async () => {
|
||||||
const save = vi.fn()
|
const save = vi.fn()
|
||||||
.mockRejectedValueOnce(new Error('boom'))
|
.mockRejectedValueOnce(new Error('boom'))
|
||||||
.mockResolvedValueOnce();
|
.mockResolvedValueOnce(undefined);
|
||||||
const { result } = renderHook(() => useAutoSave(save, 100));
|
const { result } = renderHook(() => useAutoSave(save, 100));
|
||||||
|
|
||||||
act(() => { result.current.schedule({ x: 1 }); });
|
act(() => { result.current.schedule({ x: 1 }); });
|
||||||
|
|
@ -68,7 +68,7 @@ describe('useAutoSave', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('"saved" fades back to idle after 2 seconds', async () => {
|
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));
|
const { result } = renderHook(() => useAutoSave(save, 100));
|
||||||
|
|
||||||
act(() => { result.current.schedule({ y: 1 }); });
|
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 () => {
|
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));
|
const { result, unmount } = renderHook(() => useAutoSave(save, 900));
|
||||||
|
|
||||||
act(() => { result.current.schedule({ unsaved: true }); });
|
act(() => { result.current.schedule({ unsaved: true }); });
|
||||||
Loading…
Reference in New Issue