У меня есть сайт React (с использованием TypeScript и Webpack), который использует пакет react-fontawesome
FortAwesome для рендеринга иконок. Этот пакет импортируется следующим образом:
import FontAwesomeIcon from '@fortawesome/react-fontawesome';
При добавлении Jest-тестов с использованием Enzyme все тесты, в которых используется компонент, содержащий ссылку на FontAwesomeIcon
, завершаются с ошибкой:
Warning: React.createElement: type is invalid -- expected a string (for built-in
components) or a class/function (for composite components) but got: undefined.
You likely forgot to export your component from the file it's defined in, or you might
have mixed up default and named imports.
Изменение импорта для этих компонентов:
import * as FontAwesomeIcon from '@fortawesome/react-fontawesome';
исправляет тест, но затем не удается перейти на страницу, содержащую этот компонент, с:
Warning: React.createElement: type is invalid -- expected a string (for built-in
components) or a class/function (for composite components) but got: object.
Я ожидаю, что это конфликт между ES6, Вавилоном и, возможно, фазой луны, но после нескольких часов борьбы с этим у меня заканчиваются идеи ...