Не забывайте синхронизировать все конфигурации вашего проекта.

Однажды я работал над устаревшим проектом React, запустил недавно добавленный модульный тест и получил эту ошибку:

Проблема

Шутка: TypeError: replaceAll не является функцией

Сначала я был сбит с толку, потому что в браузере компонент работал как часы с использованием метода replaceAll, но оказалось, что replaceAll — это новая функция, реализованная не во всех браузерах или более старых версиях Node.js.

Решение

Установите полифил replaceAll и добавьте его в файл конфигурации установки jest.

  1. Установить заменить все
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.