UNPKG

ts-mockery

Version:

Yet another typescript mocking library.

22 lines (21 loc) 1.46 kB
import { SpyAdapter } from './spy-adapters/spy-adapter'; export type RecursivePartial<T> = Partial<{ [key in keyof T]: T[key] extends Promise<infer P> ? Promise<RecursivePartial<P>> : T[key] extends (...a: Array<infer U>) => infer R ? R extends Promise<infer P> ? (...a: Array<U>) => Promise<RecursivePartial<P>> : (...a: Array<U>) => RecursivePartial<R> : T[key] extends Array<unknown> ? Array<RecursivePartial<T[key][number]>> : T[key] extends string | number | boolean | null | undefined ? T[key] : RecursivePartial<T[key]>; }>; export interface ExtendedWith<T> { with(stubs: RecursivePartial<T>): T; } export declare class Mockery { static get noop(): () => any; static all<T extends object>(): T; static configure(spyAdapter: 'jasmine' | 'jest' | SpyAdapter): void; static extend<T>(object: T): ExtendedWith<T>; static from<T>(object: RecursivePartial<T>): T; static of<T extends Array<unknown>>(stubs?: Array<RecursivePartial<T[number]>>): T; static of<T extends ReadonlyArray<unknown>>(stubs?: ReadonlyArray<RecursivePartial<T[number]>>): T; static of<T extends object>(stubs?: RecursivePartial<T>): T; static staticMethod<T, K extends keyof T>(object: T, key: K, stub: T[K] extends (...args: infer A) => infer R ? (...args: A) => R extends object ? RecursivePartial<R> | R : R : T[K]): void; private static spyAdapter; private static spyOnTheStubbedFunctions; private static withGenerator; }