Ожидания не работают в Чай как обещанные результаты
Я новичок в Promises в JavaScript, и, хотя мне кажется, что он в какой-то степени работает для меня, я не могу проверить значение 'reject'.
Я передаю сообщение об ошибке и хочу убедиться, что это ошибка и, что более важно, код ошибки соответствует ожидаемому.
return new Promise(function(resolve, reject){
tableService.deleteEntity(config.azureTable.tableName,
visitor.azureEntity(), function (error, response) {
// If successful, go on.
if (!error) {
resolve(response);
}
// If unsuccessful, log error.
else {
/* If we know it's a resourceNotFound
that's causing the error, return that. */
if (error.code === 'ResourceNotFound') {
reject(new Error('Record not found'));
}
// For unexpected errros.
else {
reject(new Error('Table service error (delete): ' + error));
}
}
});
});
Тест, в мокко - с использованием чай и чай-как обещал. Все остальное работает (у меня 24 прохождения теста) - но этот застрял!
it('return an error when the lookup fails', function (done) {
storage.delete(globalUUID).then(function(sucess) {
done(sucess);
}, function(error) {
expect(error).to.be.an(Error);
done();
});
});
Любая помощь будет принята с благодарностью.
1 ответ
Вы не используете chai-as-promised
в любом месте. Если ваш первый пример кода это тело storage.delete
метод, то ваш тест должен выглядеть так:
it('return an error when the lookup fails', function() {
expect(storage.delete(globalUUID)).to.be.rejectedWith(Error);
});