скажем, у меня есть модуль, который нужно инициализировать один раз в начале приложения (для передачи конфигурации). модуль будет выглядеть примерно так:
MyModule.js
let isInitiazlied;
const myModule = {
init: function() {
isInitiazlied = true;
},
do: function() {
if (!isInitiazlied)
throw "error"
//DO THINGS
}
}
export default myModule;
Я хочу протестировать его, используя шутку. тестовый файл выглядит примерно так:
Мой модуль.test.js
import myModule from './MyModule'
describe('MyModule', () => {
describe('init', () => {
it('not throws exception when called', () => {
expect(() => myModule.init()).not.toThrow();
});
})
describe('do', () => {
it('throw when not init', () => {
expect(() => myModule.do()).toThrow();
});
})
})
когда я запускаю тест, второй тест терпит неудачу, так как модуль уже инициализирован, поэтому исключение не выдается. Я пытался использовать jest.resetModules() в beforeEach, но это не сработало.
Есть ли способ решить эту проблему (другой шаблон модуля/тестовый пример)?