export function createDeferredPromise() { let resolve!: (value: R | PromiseLike) => void; let reject!: (reason?: unknown) => void; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); return { promise, resolve, reject }; } function createDeferredMockFn() { const deferred = createDeferredPromise(); const fn = jest.fn(() => deferred.promise); return { ...deferred, fn }; } export default createDeferredMockFn;