Почему Jest нужен Babel для тестирования асинхронного кода?

#jestjs #babeljs

#jestjs #babeljs

Вопрос:

Руководство по Jest «Асинхронному примеру» начинается с:

Сначала включите поддержку Babel в Jest…

Но я не понимаю, зачем и для чего Jest нужен Babel.

Ответ №1:

Node.js поддерживает async функции по умолчанию начиная с версии 7.6.0, поэтому (как вы и подозревали) Babel не нужен для Jest запуска тестов с использованием async функций.

Я только что подтвердил это, установив только Jest версию 24.6.0 и запустив этот тест с Node.js версия 10.15.1:

 test('hi', async () => {
  const val = await Promise.resolve('hello');
  expect(val).toBe('hello');
});
  

… и все прошло просто отлично.


С другой стороны, Babel требуется использовать синтаксис модуля ES6.

Многие примеры в документе «Асинхронный пример» используют синтаксис модуля ES6 ( export default ... , import * as ... и т.д.), Что Babel требуется для работы любого из этих примеров.