Не забывайте синхронизировать все конфигурации вашего проекта.
Однажды я работал над устаревшим проектом React, запустил недавно добавленный модульный тест и получил эту ошибку:
Проблема
Шутка: TypeError: replaceAll не является функцией
Сначала я был сбит с толку, потому что в браузере компонент работал как часы с использованием метода replaceAll, но оказалось, что replaceAll — это новая функция, реализованная не во всех браузерах или более старых версиях Node.js.
Решение
Установите полифил replaceAll и добавьте его в файл конфигурации установки jest.
- Установить заменить все
npm i string.prototype.replaceall
2. Измените конфигурацию Jest, добавьте свойство setupFilesAfterEnv, как показано ниже:
{
"jest": {
"setupFilesAfterEnv": ["<rootDir>/jestSetup.js"]
}
}
3. Добавьте следующий код в файл jestSetup.
import replaceAllInserter from 'string.prototype.replaceall'; replaceAllInserter.shim();
Удачного кодирования!
"Источник"
Привет, здесь мы говорим о разработке программного обеспечения, JavaScript, самообучении и многом другом.
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.