Чай, как и обещал таймаут отклонения теста
Как я должен проверить отклонение:
return new Promise(function(resolve, reject){
models.users.find({
where: {
email: email
}
}).then(function(result){
if(!result)
throw 'Invalid password'
}).catch(function(err){
reject(err);
});
});
в моем тесте:
it('should be rejected', function(){
let data= { req: {
email: 'alvin@.oc',
}};
return User.authUser(data).should.be.rejected;
});
Это должно быть отклонено с ошибкой "Неверный пароль", но я получаю ошибку:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure
it resolves.
1 ответ
Решение
Вы можете выдать ошибку и проверить содержание сообщения об ошибке. Вам не нужно отклонять обещание, потому что исключение отклоняет обещание, и вы не должны заключать его в другое обещание:
return models.users.find({
where: {
email: email
}
}).then(function(result){
if(!result)
throw new Error('Invalid password');
});
и в вашем тесте:
return User.authUser(data).should.be.rejectedWith(Error).and.eventually.have.property("message").equal('Invalid password');