У меня есть очень простой тест в Jest, который проверяет, нормально ли работает функция автозапуска плагина, код выглядит следующим образом:
import html from './html.js';
import Glide from '../dist/glide.esm.js';
describe('check autoplay option' , () => {
// console.log( document );
beforeEach( () => {
document.body.innerHTML = html;
});
test( 'Check index to be 1 for autoplay' , (done) => {
let glide = new Glide('#glide' , {
type : 'slider',
gap : 0,
autoplay: 500,
rewind: false
}).mount();
setTimeout( () => {
console.log( `The glide index is ${glide.index}` );
expect( glide.index ).toBe(1);
done();
}, 510 );
});
});
Как вы можете видеть, я использую import
оператор в моем jest тесте, который не поддерживается по умолчанию в jest, поэтому, если я просто запустил тестовый файл как есть, будет выдано сообщение об ошибке, подтверждающее, что оператор импорта не поддерживается.Поэтому я также устанавливаю следующее в мой файл package.json.("@babel/core": "^7.5.0", "@babel/preset-env": "^7.5.0", "babel-jest": "^24.8.0",
).
//package.json
"devDependencies": {
"@babel/core": "^7.5.0",
"@babel/preset-env": "^7.5.0",
"babel-jest": "^24.8.0",
"jest": "^24.8.0"
}
И иметь файл babel.config.json
со следующими настройками:
// babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
};
Теперь, когда я запускаю npm run test
, мой тест запускается, мой вопросКак работает Babel и Jest в тандеме?Что именно здесь связывает Babel с тестом на шутку?
PS Загрузил мой тестовый пакет в репозиторий git здесь .