React & Jest — обрабатывать файлы, отличные от JavaScript

Я предполагаю, что вы здесь из-за каких-то тестовых ошибок или чего-то еще, что происходит во время каждого запуска. Вы подозреваете, что ошибка вызвана импортированными файлами ресурсов внутри компонента, но не уверены в точном решении.

Препятствие

По сути, Jest не может обрабатывать файлы, отличные от JavaScript, по умолчанию, поэтому все они также должны быть каким-то образом имитированы.

Решение

Jest предоставляет свойство moduleNameWrapper, которое можно использовать в этих нестандартных случаях. Он принимает следующие элементы:

  • регулярное выражение, которое ищет все совпадающие с ним файлы,
  • функция имитации, которая будет использоваться вместо совпадающих файлов.

Есть два подхода к мокированию ресурсов — я также продемонстрирую пример для каждого из них ниже:

  1. со сторонним пакетом — например identity-obj-proxy,

2. простой, самостоятельно созданный файл.

Надеюсь, вы либо узнали что-то новое, либо вам понравилась статья. Любые отзывы и вопросы приветствуются в разделе комментариев. Меня также можно найти в Твиттере.