У меня есть простой сервис, который мне нужен для модульного тестирования с использованием jest:
Суть кода такова:
domtoimage.toBlob(node, {filter: filter})
.then(function (blob) {
FileSaver.saveAs(blob, fileName);
});
Я написал свой модуль модульного тестирования как таковой:
import FileSaver from "file-saver";
import domtoimage from "dom-to-image";
jest.mock('dom-to-image', () => {
return {
toBlob: (arg)=>{
let promise = new Promise((resolve, reject) => {
resolve('myblob')
});
return promise;
}
}
});
jest.mock('file-saver', ()=>{
return {
saveAs: (blob, filename) =>{
return filename;
}
}
});
И в моем тесте у меня есть следующий шпион, настроенный
const spy = jest.spyOn(FileSaver, 'saveAs');
и вызывающий мою тестовую функцию.
однако,оператор ожидаемого: expect(spy).toBeCalled()
возвращает false:
expect(jest.fn()).toBeCalled()
Однако в веб-шторме, когда я отлаживаю модульный тест, я ясно вижу, что вызывается моя смоделированная функция (достигается точка останова внутри функции).
Чего мне не хватает?