UNPKG

@tanstack/query-core

Version:

The framework agnostic core that powers TanStack Query

60 lines (51 loc) 1.59 kB
import { vi } from 'vitest' import { QueryClient, onlineManager } from '..' import * as utils from '../utils' import type { MockInstance } from 'vitest' import type { MutationOptions, QueryClientConfig } from '..' export function createQueryClient(config?: QueryClientConfig): QueryClient { return new QueryClient(config) } export function mockVisibilityState( value: DocumentVisibilityState, ): MockInstance<() => DocumentVisibilityState> { return vi.spyOn(document, 'visibilityState', 'get').mockReturnValue(value) } export function mockOnlineManagerIsOnline( value: boolean, ): MockInstance<() => boolean> { return vi.spyOn(onlineManager, 'isOnline').mockReturnValue(value) } let queryKeyCount = 0 export function queryKey(): Array<string> { queryKeyCount++ return [`query_${queryKeyCount}`] } export function sleep(timeout: number): Promise<void> { return new Promise((resolve, _reject) => { setTimeout(resolve, timeout) }) } export function executeMutation<TVariables>( queryClient: QueryClient, options: MutationOptions<any, any, TVariables, any>, variables: TVariables, ) { return queryClient .getMutationCache() .build(queryClient, options) .execute(variables) } // This monkey-patches the isServer-value from utils, // so that we can pretend to be in a server environment export function setIsServer(isServer: boolean) { const original = utils.isServer Object.defineProperty(utils, 'isServer', { get: () => isServer, }) return () => { Object.defineProperty(utils, 'isServer', { get: () => original, }) } }