Mocking with Jest and Typescript

Published

Use the ts-jest/utils mocked function to assist in testing:

import { mocked } from "ts-jest/utils";
import someLib, { SomeReturnType } from "some-lib";

// Mock the library
jest.mock("some-library");

// Create a typed, mocked instance of the lib under test.
const mockedLib = mocked(someLib, true);

describe("CognitoService", () => {
  beforeEach(() => {
    // Reset mocks for each test
    mockedLib.someMethod.mockReset();
  });

  test(".someMethod", async () => {
    // Setup
    const expected = { foo: "bar" };
    mockedSetup.someMethod.mockReturnValueOnce(expected as SomeReturnType);

    // Run
    someLib.someMethod();

    // Assert
    expect(mockedLib.someMethod).toBeCalledWith(expected);
  });
});