ReactJs - Модульное тестирование с использованием Mocha, обновление до Babel 7 с Babel 6 - PullRequest
0 голосов
/ 30 мая 2020

Сделал обновление Babel v6 - v7 @latest сегодня, и некоторые из существующих модульных тестов с использованием Mocha и Enzyme (довольно стандартные) начали давать сбой. Получение этой ошибки в консоли

\node_modules\reselect\lib\index.js:53
    throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));  

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

По индексу смотрите ниже - все наши компоненты классифицируются, а затем импортируются / экспортируются. Мы используем этот шаблон уже 3 года.

import ABC from './common/Folder/ABC';
.
.
.
import XYZ from './common/Folder/XYZ';

export {
ABC,
.
.
XYZ
}

Ошибка возникает, когда в файл модульного теста мы импортируем, как показано ниже

1.import { ABC } from 'componentIndex';

Если указан прямой путь, начинает работать

2. import { ABC } from '../../ABC';

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

Любое предложение, что мне может не хватать, что вызывает эту ошибку. Любой плагин Babel? Спасибо!

1 Ответ

0 голосов
/ 01 июня 2020

Проблема оказалась в

1. import {AB C} from 'componentIndex';

Когда AB C был импортирован, похоже, что babel проверил componentIndex для его правильности и в нем была ссылка на файлы, у которых был createSelector от повторного выбора. Пока выполнялся модульный тест, некоторые селекторы не могли разрешиться и приводили к ошибке.

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

Не уверен, как они работали в версии 6.

...