From b695f7c324ff83f4d23f36e3a710512e074675f5 Mon Sep 17 00:00:00 2001 From: minseong Date: Sat, 26 Apr 2025 02:25:18 +0900 Subject: [PATCH 1/2] test(query-persist-client-core): use fake timers for createPersister.test.ts --- .../src/__tests__/createPersister.test.ts | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts index 95038813dc1..c13b91305d1 100644 --- a/packages/query-persist-client-core/src/__tests__/createPersister.test.ts +++ b/packages/query-persist-client-core/src/__tests__/createPersister.test.ts @@ -1,10 +1,9 @@ -import { describe, expect, test, vi } from 'vitest' +import { afterAll, beforeAll, describe, expect, test, vi } from 'vitest' import { Query, QueryClient, hashKey } from '@tanstack/query-core' import { PERSISTER_KEY_PREFIX, experimental_createPersister, } from '../createPersister' -import { sleep } from './utils' import type { QueryFunctionContext, QueryKey } from '@tanstack/query-core' import type { StoragePersisterOptions } from '../createPersister' @@ -60,6 +59,14 @@ function setupPersister( } describe('createPersister', () => { + beforeAll(() => { + vi.useFakeTimers() + }) + + afterAll(() => { + vi.useRealTimers() + }) + test('should fetch if storage is not provided', async () => { const { context, persisterFn, query, queryFn } = setupPersister(['foo'], { storage: undefined, @@ -215,7 +222,7 @@ describe('createPersister', () => { query.fetch = vi.fn() expect(query.state.dataUpdatedAt).toEqual(0) - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) expect(query.fetch).toHaveBeenCalledTimes(0) @@ -243,7 +250,7 @@ describe('createPersister', () => { query.state.isInvalidated = true query.fetch = vi.fn() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) expect(query.fetch).toHaveBeenCalledTimes(1) @@ -266,7 +273,7 @@ describe('createPersister', () => { await persisterFn(queryFn, context, query) query.setData('baz') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledOnce() expect(queryFn).toHaveBeenCalledWith(context) @@ -308,7 +315,7 @@ describe('createPersister', () => { await persisterFn(queryFn, context, query) query.fetch = vi.fn() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(1) expect(query.fetch).toHaveBeenCalledTimes(0) @@ -337,7 +344,7 @@ describe('createPersister', () => { query.state.isInvalidated = true query.fetch = vi.fn() - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledTimes(0) expect(query.fetch).toHaveBeenCalledTimes(1) @@ -362,7 +369,7 @@ describe('createPersister', () => { await persisterFn(queryFn, context, query) query.setData('baz') - await sleep(0) + await vi.advanceTimersByTimeAsync(0) expect(queryFn).toHaveBeenCalledOnce() expect(queryFn).toHaveBeenCalledWith(context) From d83cb2f30f2b4397270cd9bb2bbba5c67d214250 Mon Sep 17 00:00:00 2001 From: minseong Date: Sat, 26 Apr 2025 02:39:20 +0900 Subject: [PATCH 2/2] refactor: remove unnecessary export --- packages/query-persist-client-core/src/__tests__/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/query-persist-client-core/src/__tests__/utils.ts b/packages/query-persist-client-core/src/__tests__/utils.ts index 01287a2422d..ee5ac7f0d40 100644 --- a/packages/query-persist-client-core/src/__tests__/utils.ts +++ b/packages/query-persist-client-core/src/__tests__/utils.ts @@ -7,7 +7,7 @@ export function createQueryClient(config?: QueryClientConfig): QueryClient { return new QueryClient(config) } -export function sleep(timeout: number): Promise { +function sleep(timeout: number): Promise { return new Promise((resolve, _reject) => { setTimeout(resolve, timeout) })