fix jest-when

This commit is contained in:
antoinebrault
2019-02-05 21:47:22 -05:00
parent 3fbd136e7f
commit 1f5d6d6cc4
2 changed files with 10 additions and 8 deletions

View File

@@ -11,10 +11,10 @@ export interface WhenMock<T = any, Y extends any[] = any> extends jest.Mock<T, Y
expectCalledWith(...matchers: Y): WhenMock<T, Y>;
mockReturnValue(value: T): WhenMock<T, Y>;
mockReturnValueOnce(value: T): WhenMock<T, Y>;
mockResolvedValue(value: T | PromiseLike<T>): WhenMock<Promise<T>, Y>;
mockResolvedValueOnce(value: T | PromiseLike<T>): WhenMock<Promise<T>, Y>;
mockRejectedValue(value: T | PromiseLike<T>): WhenMock<Promise<T>, Y>;
mockRejectedValueOnce(value: T | PromiseLike<T>): WhenMock<Promise<T>, Y>;
mockResolvedValue(value: ResolvedValue<T>): WhenMock<T, Y>;
mockResolvedValueOnce(value: ResolvedValue<T>): WhenMock<T, Y>;
mockRejectedValue(value: RejectedValue<T>): WhenMock<T, Y>;
mockRejectedValueOnce(value: RejectedValue<T>): WhenMock<T, Y>;
}
export type When = <T, Y extends any[]>(fn: jest.Mock<T, Y>) => WhenMock<T, Y>;

10
types/jest/index.d.ts vendored
View File

@@ -37,6 +37,8 @@ declare var xtest: jest.It;
declare const expect: jest.Expect;
type ArgsType<T> = T extends (...args: infer A) => any ? A : never;
type RejectedValue<T> = T extends PromiseLike<any> ? any : never;
type ResolvedValue<T> = T extends PromiseLike<infer U> ? U | T : never;
interface NodeRequire {
/**
@@ -912,7 +914,7 @@ declare namespace jest {
/**
* Simple sugar function for: `jest.fn().mockImplementation(() => Promise.resolve(value));`
*/
mockResolvedValue(value: T extends PromiseLike<infer U> ? U | T : never): Mock<T, Y>;
mockResolvedValue(value: ResolvedValue<T>): Mock<T, Y>;
/**
* Simple sugar function for: `jest.fn().mockImplementationOnce(() => Promise.resolve(value));`
*
@@ -932,7 +934,7 @@ declare namespace jest {
* });
*
*/
mockResolvedValueOnce(value: T extends PromiseLike<infer U> ? U | T : never): Mock<T, Y>;
mockResolvedValueOnce(value: ResolvedValue<T>): Mock<T, Y>;
/**
* Simple sugar function for: `jest.fn().mockImplementation(() => Promise.reject(value));`
*
@@ -944,7 +946,7 @@ declare namespace jest {
* await asyncMock(); // throws "Async error"
* });
*/
mockRejectedValue(value: T extends PromiseLike<any> ? any : never): Mock<T, Y>;
mockRejectedValue(value: RejectedValue<T>): Mock<T, Y>;
/**
* Simple sugar function for: `jest.fn().mockImplementationOnce(() => Promise.reject(value));`
@@ -962,7 +964,7 @@ declare namespace jest {
* });
*
*/
mockRejectedValueOnce(value: T extends PromiseLike<any> ? any : never): Mock<T, Y>;
mockRejectedValueOnce(value: RejectedValue<T>): Mock<T, Y>;
}
/**