import { act } from '@testing-library/react' import type { QueryClientConfig } from '@tanstack/query-core' import { QueryClient } from '@tanstack/query-core' export function createQueryClient(config?: QueryClientConfig): QueryClient { jest.spyOn(console, 'error').mockImplementation(() => undefined) return new QueryClient({ logger: mockLogger, ...config }) } export const mockLogger = { log: jest.fn(), warn: jest.fn(), error: jest.fn(), } let queryKeyCount = 0 export function queryKey(): Array { queryKeyCount++ return [`query_${queryKeyCount}`] } export function sleep(timeout: number): Promise { return new Promise((resolve, _reject) => { setTimeout(resolve, timeout) }) } export function setActTimeout(fn: () => void, ms?: number) { return setTimeout(() => { act(() => { fn() }) }, ms) }