UnhandledPromiseRejectionWarning происходит, когда Promise отклоняется, но с ним не связан обработчик перехвата.Поскольку обработчик может быть присоединен к Promise в любое время (даже после того, как он отклонен), поведение по умолчанию состоит в том, чтобы записать предупреждение на выход по умолчанию (консоль) после нескольких циклов событий.
Inкод, который вы предоставляете, наиболее вероятная причина в том, что ваш блок catch находится не в том месте.Попробуйте переместить обработчик catch в конец цепочки Promise.
Это точно не решит проблему, но это наиболее вероятное место в предоставленном вами коде.Также обратите внимание, что при использовании механизма обратного вызова «готово» от Mocha вы не должны бросать.Вместо этого вы должны вызвать done с ошибкой (также показанной ниже)
it('/POST /logout => Logout a user by purging a session', (done) => {
let loginInfo = {};
loginInfo.usr = 'testuser';
loginInfo.psw = 'mochatesting197';
let agent = chai.request.agent(app);
let json = {};
json.logout = true;
agent.post('/login')
.send(loginInfo)
.then((res) => {
return agent.post('/logout')
.send(json)
.then((res) => {
res.should.have.status(200);
res.body.should.be.a('object');
res.body['success'].should.have.property('message').eql('YOU HAVE LOGGED OUT');
done();
})
})
.catch(function (err) {
done(err);
});
});