Я пишу тесты для моего приложения Node JS с Мокко
В моем тесте я смоделировал 1 функцию (которая вызывает HTTP-URL) и для некоторых условий я добавилсон 1 секунда.
Я получаю ниже исключения из-за этой функции сна в тесте мокко.В реальном приложении все работает нормально.
Ошибка: стек асинхронных хуков поврежден (фактическое: 18, ожидаемое: 19) 1: v8 :: SnapshotCreator :: закрытие конструктора по умолчанию 2:
узел :: CallbackScope :: ~ CallbackScope 3:
узел :: CallbackScope :: ~ CallbackScope 4: RAND_query_egd_bytes 5:
RAND_query_egd_bytes 6: uv_timer_get_repeat 7: uv_run 8 * * v66: 8
000007FEF8771261 9: 000007FEF87710B6 10:
v8 :: internal :: wasm :: SignatureMap :: Find 11:
v8 :: internal :: Builtins :: CallableFor 12:
v8 :: internal :: Builtins :: CallableFor 13:
v8 :: internal :: Builtins :: CallableFor 14: 000002E6363043C1
Ниже приведен мой код moched function .
somefunction() //In Mock test
{
let current_time = Math.round((new Date()).getTime() / 1000);
if (last_execution_time == current_time) {
admin_delete_user_count++;
if (admin_delete_user_count >= 3) {
callback({
stack: "TooManyRequestsException: Rate exceeded",
"code": "TooManyRequestsException",
"statusCode": 400
}, undefined);
return;
}
} else {
admin_delete_user_count = 0;
last_execution_time = Math.round((new Date()).getTime() / 1000);
}
callback(undefined, "Test");
}
Ниже приведена актуальная функция в моем приложении js для узла, которая вызывает проблему после отправки исключения из кода выше.
somefunction() // In Real applicatio
{
if (err) {
if (err.code == "TooManyRequestsException") {
logger.log("INFO", "TooManyRequestsException, So wait a while for 1 second and retry");
index = index - 1;
sleep(1000); // THIS IS CAUSING THE ISSUE
}
} else {
console.log("deletedUsers:" + JSON.stringify(deletedUsers));
}
}
Anyпомочь?