Я пытался проверить свои экспресс-маршруты, используя чай и мокко.Мне удается сделать нормальные тесты, но он не работает на асинхронной функции.контрольный пример:
describe('/Login wrong user', () => {
it('It should attempt a login POST but with no data', (done) => {
chai.request(app)
.post('/login')
.send({})
.then((res) => {
expect(res).to.have.status(200);
done();
}).catch((err) => {
throw err;
});
});
});
Код, который я хочу проверить
router.post('/', async function(req, res, next) {
if (!req.body) return res.sendStatu(400);
if (!req.body.usr) return res.sendStatus(400);
if (!req.body.psw) return res.sendStatus(400);
let user = new _USER();
await user.login_user(req.body.usr, req.body.psw).then(ret => {
if (ret === false) return res.sendStatus(401);
req.session.active = true;
req.session.user = ret;
res.sendStatus(200);
}).catch(err => {
_UTILS.errorHandler(err, false, true);
res.sendStatus(500);
});
});
Stacktrace:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/srv/webkb_mean/test/test_module_login.js)