Я пытаюсь проверить загрузку dataUrl в изображение с помощью Jest. Я использую JSDOM и следовал инструкции, чтобы добавить resources: "usable"
в качестве опции.
Код работает, если я запускаю его непосредственно из Node, но когда я пытаюсь запустить его в Jest, обработчик образа onLoad никогда не вызывается, и поэтому тест никогда не завершается.
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`, {
resources: "usable",
});
global.window = dom.window;
global.document = dom.window.document;
global.navigator = global.window.navigator;
const dataUrlToImage = async (dataUrl) => {
return new Promise(((resolve, reject) => {
const img = document.createElement('img');
img.crossOrigin = 'Anonymous';
img.onload = function() { // Never called
console.info('On load called');
resolve(img);
};
img.src = dataUrl;
}));
}
it('tests image loading', async () => {
const r = await dataUrlToImage('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==');
expect(!!r).toBe(true); // This is never called
});
Есть идеи, в чем может быть проблема?