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: Request, options?: Partial>, trackedOptions?: Partial>, ) => { 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[0]>) => { return useRequestEvents({ logger, actions, dispatcher, setCacheData, getIsDataProcessing, ...options, ...args, request, }); }); };