UNPKG

@hexancore/mocker

Version:

Simple and magical mocks for TypeScript, works with jest and vitest

36 lines (35 loc) 1.76 kB
import { MockFn } from './MockFnFactory'; export declare class MethodMock<M extends (...args: any) => any> { private readonly mock; constructor(mock: MockFn); andReturnWith(implementation: (...args: Parameters<M>) => ReturnType<M>): void; andReturn(value: ReturnType<M>): void; andReturnThis(): void; andReturnResolved(value: ReturnType<M> extends Promise<infer U> ? U : never): void; andReturnRejected<E extends Error>(error: ReturnType<M> extends Promise<any> ? E : never): void; } export type MethodMockInterface<T extends object, M extends (...args: any) => any> = ReturnType<M> extends Promise<any> ? ReturnType<M> extends T ? MethodMock<M> : Omit<MethodMock<M>, 'andReturnThis'> : Omit<MethodMock<M>, ReturnType<M> extends T ? 'andReturnResolved' | 'andReturnRejected' : 'andReturnResolved' | 'andReturnRejected' | 'andReturnThis'>; export declare class Mocker<T extends object> { private readonly name; private readonly mock; private readonly mockProxy; private methodCallExpections; private checkedExpections; private notExistingDynamicSet; static __MockFnFactory: any; constructor(name?: string); private createMockProxy; static of<T extends object>(name?: string): Mocker<T>; /** * @return Returns mock instance */ get i(): T; allowsNotExistingDynamic(names: string | string[]): Mocker<T>; expects<K extends keyof T, M extends ((...args: any) => any) & T[K]>(name: K, ...args: Parameters<M>): MethodMockInterface<T, M>; private createMockFn; reset(): void; checkExpections(reset?: boolean): void; private checkExpection; } export type M<T extends object> = Mocker<T>; export declare const mock: <T extends object>(name?: string) => Mocker<T>;