Я пытаюсь проверить особенности отклоненного промиса, используя Chai-as-Promised, Mocha и диалект "следует". Обещания реализуются с помощью bluebird.
Это отлично работает:
it('it should be rejected when given bad credentials', function () {
var promiseOfUsers = db.auth("bad", "credentials").getUsers();
return promiseOfUsers.should.eventually.be.rejectedWith(Error)
});
У этой ошибки есть свойство «статус». Я хотел бы утверждать, что статус 401
Это не работает:
it('it should be rejected when given bad credentials', function () {
var promiseOfUsers = db.auth("bad", "credentials").getUsers();
return promiseOfUsers.should.eventually.be.rejectedWith(Error)
.that.has.property('status')
.that.equals(401)
});
Кажется, что любая попытка утверждения без ссылки на «отклонено» или rejectWith(Error) терпит неудачу и просто выводит ошибку на консоль.
Как я могу выяснить причину отказа?
should.eventually.be.rejectedWith(Error).and.eventually.have.property("status").that.equals(401)
- person Benjamin Gruenbaum   schedule 02.06.2014.should.eventually.be.rejected.and.eventually.have.property("status").that.equals(401);
работает, но не проверяет тип ошибки. jsfiddle.net/F9SKD - person Benjamin Gruenbaum   schedule 02.06.2014.catch(function(err){ return err instanceof Error && error.status === 401});
- person Benjamin Gruenbaum   schedule 02.06.2014