Я использую react-helmet
, чтобы добавить тег скрипта менеджера тегов Google на определенную страницу.Это работает нормально, но jest создает исключение для объявления.
Обычно я бы использовал jest.mock
, но я не могу заставить его работать, и я не могу заставить себя игнорировать эту строку кода.
<Helmet>
<title>{messages.title.defaultMessage}</title>
<meta name="title" content={messages.metaTitle.defaultMessage} />
<meta name="description" content={messages.metaDescriptions.defaultMessage} />
<meta name="keyword" content={messages.metaKeyword.defaultMessage} />
{/* Google Tag Manager */}
<script id="ga-script" type="text/javascript">
{((w, d, s, l, i) => {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js',
});
const f = d.getElementsByTagName(s)[0];
const j = d.createElement(s);
const dl = l !== 'dataLayer' ? `&l=${l}` : '';
j.async = true;
j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`;
f.parentNode.insertBefore(j, f);
f.className = 'ga-script';
j.className = 'ga-script';
})(window, document, 'script', 'dataLayer', 'GTM-000000')}
</script>
{/* End Google Tag Manager*/}
</Helmet>
<VerificationPhonePage /> equalEmailProps › encountered a declaration exception
TypeError: Cannot read property 'parentNode' of undefined
296 | j.async = true;
297 | j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`;
> 298 | f.parentNode.insertBefore(j, f);
| ^
299 | f.className = 'ga-script';
300 | j.className = 'ga-script';
301 | })(window, document, 'script', 'dataLayer', 'GTM-000000')}