UNPKG

@golevelup/ts-jest

Version:

Reusable utilities to help level up NestJS Testing

17 lines 1.12 kB
type DeepPartial<T> = { [P in keyof T]?: T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : unknown extends T[P] ? T[P] : DeepPartial<T[P]>; }; export type PartialFuncReturn<T> = { [K in keyof T]?: T[K] extends (...args: infer A) => infer U ? (...args: A) => PartialFuncReturn<U> : DeepPartial<T[K]>; }; type IsExactlyUnknown<T> = unknown extends T ? T extends {} ? false : true : false; export type DeepMocked<T> = { [K in keyof T]: IsExactlyUnknown<T[K]> extends true ? any : NonNullable<T[K]> extends (...args: any[]) => infer U ? jest.MockInstance<ReturnType<NonNullable<T[K]>>, jest.ArgsType<T[K]>> & ((...args: jest.ArgsType<T[K]>) => DeepMocked<U>) : NonNullable<T[K]> extends object ? undefined extends T[K] ? DeepMocked<NonNullable<T[K]>> | undefined : DeepMocked<T[K]> : T[K]; } & T; export type MockOptions = { name?: string; strict?: boolean; }; export declare const createMock: <T extends object>(partial?: PartialFuncReturn<T>, options?: MockOptions) => DeepMocked<T>; export {}; //# sourceMappingURL=mocks.d.ts.map