У меня есть компонент React, который при монтировании создает элемент скрипта и либо загружает скрипт ZenDesk (который включает в себя инструкцию $ zopim.livechat.window.hide (), либо, если он уже загружен, вызывает $ zopim.livechat.window.hide ()).
const scriptElement = document.createElement('script');
const scriptNode= document.createTextNode(zopim == null ? zopimJs : '$zopim.livechat.window.hide()');
scriptElement.async = true;
scriptElement.appendChild(scriptNode);
document.body.appendChild(scriptElement);
Как я могу проверить это с помощью Enzyme / Jest?В идеале я хочу проверить, что эта функция hide () вызывается (а не проверять результаты этого вызова).
Или, может быть, мне нужно подойти ко всему по-другому?
Любые идеи приветствуются
cheers
Добавлено: скрипт инициализации zopim выглядит так:
window.$zopim||function(e,t){var i=$zopim=function(e){i._.push(e)},o=i.s=e.createElement(t),a=e.getElementsByTagName(t)[0];i.set=function(e){i.set._.push(e)};i._=[];i.set._=[];o.async=!0;o.setAttribute("charset","utf-8");o.src="https://v2.zopim.com/?58crBwjpXFSYXv6eloiat27G1SqQOJvC";i.t=+new Date;o.type="text/javascript";a.parentNode.insertBefore(o,a)}(document,"script");$zopim(function(){var t="Customer Support";var i="Customer Support";var o="Please enter your message below. An expert will get back to you shortly.";$zopim.livechat.setOnConnected(function(){var e=$zopim.livechat.departments.getDepartment(t);if(typeof e=="undefined"){$zopim.livechat.setStatus("offline");$zopim.livechat.hideAll();return false}if(e.status=="offline"){$zopim.livechat.setStatus("offline");$zopim.livechat.hideAll()}else{$zopim.livechat.window.setTitle(i);$zopim.livechat.theme.setColor("#FF6B00");$zopim.livechat.theme.reload();$zopim.livechat.addTags(t);$zopim.livechat.departments.filter("");$zopim.livechat.prechatForm.setGreetings(o);$zopim.livechat.departments.setVisitorDepartment(t);$zopim.livechat.window.hide()}})});
так как бы я это высмеял в тесте?И тот факт, что этот скрипт выполняется асинхронно - как лучше проверить его после монтирования компонента?