экспорт {default} из модуля не работает с Babel 7 и preset-env в Jest - PullRequest
0 голосов
/ 29 сентября 2018

После перехода на Babel 7, когда я запускаю свои тесты, я получаю эту ошибку

TypeError: Cannot read property 'default' of undefined

для этой строки (например, index.js файл):

export { default } from './SearchInput';

Где файл SearchInput.jsx находится в той же папке и использует синтаксис

export class SearchInput {}

.

Это происходит только в тестах Jest(во время выполнения приложения это работает).

Как это исправить?

РЕДАКТИРОВАТЬ:

Это моя конфигурация babel babel.config.js:

module.exports = function(api) {
  api.cache.forever();
  return {
    presets: ['@babel/preset-env', '@babel/preset-react'],
    plugins: ['@babel/plugin-proposal-class-properties'],
  };
};

Кажется, что jest не соблюдает plugins, потому что когда я удалил static defaultProps и static propTypes и переместил их в SearchInput.defaultProps и SearchInput.propTypes, тесты начали работать.

1 Ответ

0 голосов
/ 29 сентября 2018

Возможно, вы также забыли обновить приложение babel-jest.

Примечание. Если вы используете версию 7 babel, вам необходимо установить приложение babel-jest с

yarn add --dev babel-jest 'babel-core@^7.0.0-bridge' @babel/core

https://github.com/facebook/jest/tree/master/packages/babel-jest

...