UNPKG

@hyper-fetch/react

Version:

React hooks and utils for the hyper-fetch

44 lines (38 loc) 1.25 kB
import type { RequestInstance } from "@hyper-fetch/core"; import { renderHook } from "@testing-library/react"; import type { UseRequestEventsPropsType, UseTrackedStateProps } from "helpers"; import { useTrackedState, useRequestEvents } from "helpers"; import { isEqual } from "utils"; export const renderUseRequestEvents = <Request extends RequestInstance>( request: Request, options?: Partial<UseRequestEventsPropsType<Request>>, trackedOptions?: Partial<UseTrackedStateProps<Request>>, ) => { const { client } = request; const { fetchDispatcher: dispatcher, loggerManager } = client; const logger = loggerManager.initialize(client, "test"); const { result } = renderHook(() => { return useTrackedState({ logger, request, dispatcher, initialResponse: null, deepCompare: isEqual, dependencyTracking: false, ...trackedOptions, }); }); const [, actions, { setCacheData, getIsDataProcessing }] = result.current; return renderHook((args?: Partial<Parameters<typeof useRequestEvents>[0]>) => { return useRequestEvents({ logger, actions, dispatcher, setCacheData, getIsDataProcessing, ...options, ...args, request, }); }); };