init(_mapWrapper) {
let map = {};
const setMapCenter = (_newCoords) => {
map.setCenter(_newCoords);
map.setZoom(yandexMapSettings.zoom);
};
const setPlaceMarks = (_placeMarks) => {
map.geoObjects.get(0).removeAll();
map.geoObjects.get(0).add(_placeMarks);
};
const setPlaceMarkObjects = (_placeMarks) => {
const placeMarks = [];
Iterable.each(_placeMarks, (_placeMark) => {
placeMarks.push(computePlaceMark(_placeMark));
});
setPlaceMarks(placeMarks);
};
return new Promise((_resolve) => {
Meta.addScript(src, () => {
window.ymaps.ready(() => {
map = new window.ymaps.Map(_mapWrapper, yandexMapSettings);
map.geoObjects.add(new window.ymaps.Clusterer({
preset : 'islands#invertedVioletClusterIcons',
clusterDisableClickZoom : true,
groupByCoordinates : false,
clusterHideIconOnBalloonOpen : false,
geoObjectHideIconOnBalloonOpen: false,
}));
_resolve(markRaw({
setMapCenter,
computePlaceMark,
setPlaceMarks,
setPlaceMarkObjects,
}));
});
});
});
},
addScript(_src, _callback = null) {
let script = window.document.querySelector('script[src="' + _src + '"]');
if (!script) {
script = window.document.createElement('script');
script.src = _src;
window.document.head.appendChild(script);
}
script.addEventListener('load', _callback);
}
test('initialization', async () => {
const mapWrapper = window.document.createElement('div');
const yandexInterface = await YandexMap.init(window.document.body.appendChild(mapWrapper));
});
На стороне клиента все хорошо отрабатывает. Но вот тесты... Почему то window.ymaps undefined, хотя должен устанавливаться при загрузке скрипта автоматом.
Может какие -то особенности тестирования в Jest? Может кто помочь?