Тестирование отклонено обещание в Мокко / Чай

У меня есть класс, который отклоняет обещание:

Sync.prototype.doCall = function(verb, method, data) {
  var self = this;

  self.client = P.promisifyAll(new Client());

  var res = this.queue.then(function() {
    return self.client.callAsync(verb, method, data)
      .then(function(res) {
        return;
      })
      .catch(function(err) {    
        // This is what gets called in my test    
        return P.reject('Boo');
      });
  });

  this.queue = res.delay(this.options.throttle * 1000);
  return res;
};

Sync.prototype.sendNote = function(data) {
  var self = this;
  return self.doCall('POST', '/Invoice', {
    Invoice: data
  }).then(function(res) {
    return data;
  });
};

В моем тесте:

return expect(s.sendNote(data)).to.eventually.be.rejectedWith('Boo');

Однако при прохождении теста выдает ошибку в консоль.

Ошибка необработанного отклонения: Boo ...

С ошибками без обещаний я использовал связывание для проверки, чтобы предотвратить выдачу ошибки до тех пор, пока Чай не сможет завершить и проверить:

return expect(s.sendNote.bind(s, data)).to.eventually.be.rejectedWith('Boo');

Однако это не работает с этим и возвращает:

TypeError:[Function] is not a thenable.

Как правильно проверить это?

Ответы на вопрос(4)

Ваш ответ на вопрос