У меня есть простая функция машинописного текста, которая просто печатает текст и спит. Тест завершился, не дожидаясь возврата функции asyn c.
Это моя функция.
test('sleep test', () => {
function sleep(ms: number) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function delayedGreeting() {
console.log('Hello');
await sleep(5000);
console.log('World!');
await sleep(5000);
console.log('Goodbye!');
}
delayedGreeting();
});
Тест завершился только с 'Hello' в консоли.
Я пробовал другие формы, предложенные на этом сайте https://www.sitepoint.com/delay-sleep-pause-wait/. Мой тест всегда заканчивается печатью только «Hello».
Каркас проекта создается из приложения create-react-app с опцией typescript. В моем проекте есть эти зависимости.
"dependencies": {
"@types/node": "^12.12.47",
"@types/react": "^16.9.38",
"@types/react-dom": "^16.9.8",
"@types/zeromq": "^4.6.3",
"protobuf-typescript": "^6.8.8",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "3.4.1",
"typescript": "^3.7.5",
"zeromq": "^6.0.0-beta.6"
},
"devDependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"@types/jest": "^24.9.1",
"@typescript-eslint/eslint-plugin": "^3.3.0",
"@typescript-eslint/parser": "^3.3.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-react": "^7.20.0",
"prettier": "^2.0.5"
},
И я использую npm test
для запуска моего теста.
Это как-то связано с Jest? Как исправить это в моем тесте? Спасибо.