Я получил ошибку при выполнении моих модульных тестов.Я использую экспресс-приложение от NodeJS.Я хочу проверить возвращаемое сообщение (200) и (в конечном итоге) вывод функции.
const {Router} = require('express');
const {query} = require('../dbConfig');
module.exports = (router = new Router()) => {
//get only one user from the id
router.post('/getUser', async (req,res)=>{
id = req.body.id;
sql = "SELECT lastname, firstname, email, title_id, id, state FROM users WHERE id=" + id;
let result = await query(sql);
if(result.length >= 1){
res.send(result[0]);
}
})
return router;
};
Но когда я пытаюсь запустить следующий тест:
const app = require('../../app')
const request = require('supertest')
jest.mock('../../dbConfig');;
describe('POST /getUser', () => {
let data = {
id:1
}
it('Response 200 + response type',(done)=>{
request.agent(app)
.post('/getUser')
.send(data)
.expect(200, done)
})
});
Возвращаетмне следующая ошибка
Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.
я пробовал разные варианты без успеха ... я также пробовал документ в Интернете, который не очень помог для этой ошибки ... я запускаю шут с npx jest
и макетфайл выглядит так:
const rep={
"lastname": "admin",
"firstname": "admin",
"email": "admin@etsmtl.ca",
"title_id": 1,
"id": 1,
"state": 1
};
const query = (sqli) =>{
return new Promise((resolve, reject) =>{
console.log("SQL request : " + sqli)
if(sqli === "SELECT lastname, firstname, email, title_id, id, state FROM users WHERE id=1"){
console.log("Passed")
resolve(rep);
}
});
}
module.exports = {query};