ts-mockery
Version:
Yet another typescript mocking library.
22 lines (21 loc) • 1.46 kB
TypeScript
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;
}