Как проверить значение обещания и свойство, обновленное в обещании, но не возвращенное с chai-as-promised

У меня есть обещание, которое проверяет, авторизован я или нет (возвращает true или false). В этом обещании, когда авторизация неверна, я также добавляю 403 statusCode в объект ответа, который я передаю в качестве параметра. Я проверяю результат своего обещания с помощью chai-as-promised, но мне не удалось найти способ также проверить код состояния ответа после того, как обещание будет разрешено.

var result = authorizePromise(request, response);
return expect(result).to.eventually.equal(false).and(response.statusCode.should.be(403));

person Bianca    schedule 02.03.2016    source источник


Ответы (1)


ответ должен использоваться в родительской области.
и утверждение должно вызываться после того, как обещание будет готово
, поэтому это должна быть функция, вызываемая после.
пример вашего кода .and(response.statusCode.should.be(403)); запускает момент утверждения и передает его как параметр .and(), он не ждет обещания.

*Вы также можете использовать .andвместо .then.

var response = {};
var resultPromise = authorizePromise(request, response);
return expect(resultPromise).to.eventually.equal(false)
    .then(function(){return response.statusCode.should.be(403)})
person ya_dimon    schedule 04.03.2016
comment
Благодарю вас! Я не думал об использовании .then, чтобы убедиться, что мое обещание разрешено при проверке результата. - person Bianca; 04.03.2016