Я включил зависимость JS (Foo.js) в свой файл index.html. Когда я вызываю Foo.js в своем компоненте React, он находит конструктор в глобальном пространстве имен и создает его экземпляр. Это прекрасно работает, когда я его развертываю, но когда я собираюсь построить тест вокруг Component.js, тест не может найти Foo.js
<!--Index.html-->
<head>
<script src="Foo.js"></script>
</head>
// Component.js
var bar = new Foo(); // Works in deployment but not in Jest tests
При запуске моего теста я получаю эту ошибку:
RefererenceError: Foo не определен
Теперь я подумал, что буду умнее и в своем файле Component.js объявлю Foo как window.Foo, что помогло избавиться от неопределенной зависимости в моих тестах Jest.
// Component.js
var Foo = window.Foo;
var bar = new Foo();
Внезапно моя ошибка ссылки исчезла, и я был счастлив. Итак, я продолжаю писать тесты, и теперь я получаю странную ошибку, которая, я думаю, снова связана с этой глобальной зависимостью.
TypeError: undefined не является функцией
Я считаю, что моя ошибка все еще исходит из того, что Jest неправильно издевается над зависимостью от объекта окна. Мне не нужно тестировать зависимость, мне просто нужно, чтобы она была определена, чтобы я мог приступить к написанию тестов для остальной части Компонента. У кого-нибудь есть мысли о том, что я могу делать неправильно?