Чай не может проверить функцию асинхронного экспресс-маршрута - PullRequest
0 голосов
/ 13 мая 2018

Я пытался проверить свои экспресс-маршруты, используя чай и мокко.Мне удается сделать нормальные тесты, но он не работает на асинхронной функции.контрольный пример:

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)
...