Вот простой рабочий пример, с которого можно начать:
__ mocks __ / auth0-js.ts
module.exports = jest.genMockFromModule('auth0-js')
code.ts
import { WebAuth } from 'auth0-js'
const auth0Client = new WebAuth({ domain: 'your domain', clientID: 'your client id'});
auth0Client.authorize({ audience: 'your audience' });
code.test.ts
import { WebAuth } from 'auth0-js';
import './code'; // <= run code.ts
test('code', () => {
expect(WebAuth).toHaveBeenCalledWith({ domain: 'your domain', clientID: 'your client id' }); // Success!
const auth0Client = (WebAuth as jest.Mock).mock.instances[0]; // <= get the WebAuth instance
expect(auth0Client.authorize).toHaveBeenCalledWith({ audience: 'your audience' }); // Success!
})
WebAuth
является фиктивной функцией, поэтому, когда она используется для создания нового экземпляра, она будет записывать созданный экземпляр.
Во время теста вы можете получить WebAuth
и использовать его для извлечения созданного экземпляра.
Получив экземпляр, вы можете проверить его функции (также фиктивные), чтобы узнать, были ли они вызваны так, как ожидалось.