To mock a dependency’s constructor with Jest, we can call jest.mock.
For instance, we write
import * as AWS from 'aws-sdk';
jest.mock('aws-sdk', () => {
  return {
    CloudWatch: jest.fn().mockImplementation(() => {
      return {}
    })
  }
});
test('AWS.CloudWatch is called', () => {
  new AWS.CloudWatch();
  expect(AWS.CloudWatch).toHaveBeenCalledTimes(1);
});
to mock the CloudWatch constructor with a function that returns an empty object.
We call jest.fn to return a mocked function and we mock the return value of the function with mockImplementation.
Then we can use the AWS.CloudWatch constructor to run the mocked version of the constructor.
We still have to import the real dependency with
import * as AWS from 'aws-sdk';
before we can mock AWS.CloudWatch.
