Skip to content

Commit

Permalink
add assignability tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mrazauskas committed Aug 12, 2022
1 parent 6f0f2ee commit ff05715
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions packages/jest-mock/__typetests__/Mocked.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,22 @@ expectType<[a: string, b?: number]>(
MockSomeClass.prototype.methodB.mock.calls[0],
);

const mockExample = new MockSomeClass('c') as Mocked<
const mockSomeInstance = new MockSomeClass('a') as Mocked<
InstanceType<typeof MockSomeClass>
>;

expectType<[]>(mockExample.methodA.mock.calls[0]);
expectType<[a: string, b?: number]>(mockExample.methodB.mock.calls[0]);
expectType<[]>(mockSomeInstance.methodA.mock.calls[0]);
expectType<[a: string, b?: number]>(mockSomeInstance.methodB.mock.calls[0]);

expectError(mockExample.methodA.mockReturnValue('true'));
expectError(mockSomeInstance.methodA.mockReturnValue('true'));
expectError(
mockExample.methodB.mockImplementation((a: string, b?: string) => {
mockSomeInstance.methodB.mockImplementation((a: string, b?: string) => {
return;
}),
);

expectAssignable<SomeClass>(mockSomeInstance);

// mocks function

function someFunction(a: string, b?: number): boolean {
Expand All @@ -73,6 +75,8 @@ expectType<[a: string, b?: number]>(mockFunction.mock.calls[0]);
expectError(mockFunction.mockReturnValue(123));
expectError(mockFunction.mockImplementation((a: boolean, b?: number) => true));

expectAssignable<typeof someFunction>(mockFunction);

// mocks async function

async function someAsyncFunction(a: Array<boolean>): Promise<string> {
Expand All @@ -90,6 +94,8 @@ expectError(
),
);

expectAssignable<typeof someAsyncFunction>(mockAsyncFunction);

// mocks function object

interface SomeFunctionObject {
Expand Down Expand Up @@ -124,6 +130,8 @@ expectError(
}),
);

expectAssignable<SomeFunctionObject>(mockFunctionObject);

// mocks object

const mockConsole = console as Mocked<typeof console>;
Expand Down

0 comments on commit ff05715

Please sign in to comment.