import type { UseMutationResult } from '@tanstack/react-query' function build( partial: Record, ): UseMutationResult { return { failureCount: 0, failureReason: null, isPaused: false, submittedAt: 0, context: undefined, variables: undefined, mutate: () => undefined, mutateAsync: () => Promise.resolve(undefined as never), reset: () => undefined, ...partial, } as unknown as UseMutationResult } export const stubMutation = { idle(): UseMutationResult { return build({ status: 'idle', isIdle: true, isPending: false, isError: false, isSuccess: false, data: undefined, error: null, }) }, pending(): UseMutationResult { return build({ status: 'pending', isIdle: false, isPending: true, isError: false, isSuccess: false, data: undefined, error: null, }) }, error( error: Error, ): UseMutationResult { return build({ status: 'error', isIdle: false, isPending: false, isError: true, isSuccess: false, data: undefined, error, }) }, success( data: TData, ): UseMutationResult { return build({ status: 'success', isIdle: false, isPending: false, isError: false, isSuccess: true, data, error: null, }) }, }