import type { UseQueryResult } from '@tanstack/react-query' function build(partial: Record): UseQueryResult { return { failureCount: 0, failureReason: null, errorUpdateCount: 0, isFetched: true, isFetchedAfterMount: true, isFetching: partial.fetchStatus === 'fetching', isPaused: false, isPlaceholderData: false, isRefetching: false, isStale: false, isInitialLoading: partial.isLoading === true, isLoadingError: false, isRefetchError: false, dataUpdatedAt: 0, errorUpdatedAt: 0, refetch: () => Promise.resolve(undefined as never), promise: Promise.resolve(undefined as never), ...partial, } as unknown as UseQueryResult } export const stubQuery = { loading(): UseQueryResult { return build({ status: 'pending', fetchStatus: 'fetching', isPending: true, isLoading: true, isError: false, isSuccess: false, data: undefined, error: null, }) }, error(error: Error): UseQueryResult { return build({ status: 'error', fetchStatus: 'idle', isPending: false, isLoading: false, isError: true, isSuccess: false, data: undefined, error, }) }, success(data: T): UseQueryResult { return build({ status: 'success', fetchStatus: 'idle', isPending: false, isLoading: false, isError: false, isSuccess: true, data, error: null, }) }, empty(): UseQueryResult { return stubQuery.success(null as T) }, }