Как игнорировать обещание .catch в покрытии кода с помощью Стамбула?

Я использую библиотеку обещаний BluebirdJS, и у меня есть .catch, над которым я не могу издеваться, поэтому я не могу покрыть его своим покрытием кода с помощью istanbul.

.then(() => ....)
/* istanbul ignore next */ -> Does not work
.catch((err) => err) /// I want to ignore this

Кто-нибудь знает, возможно ли это с библиотекой Стамбула?

Спасибо!

РЕДАКТИРОВАТЬ: это полный код, мой тест не может достичь .catch, потому что он всегда проходит, и я не могу найти другого способа заставить мангуста выдать ошибку

 const { payload } = request

 const group = new LocationGroups(payload)

 group.save()
   .then(reply)
   .catch((error) => reply(boomify(error)))

person kdlcruz    schedule 18.09.2017    source источник
comment
Попробовать сделать его тестируемым? Почему вы думаете, что вы не можете издеваться над этим?   -  person Bergi    schedule 18.09.2017
comment
Как насчет того, чтобы поместить комментарий внутри обратного вызова, который следует игнорировать?   -  person Bergi    schedule 18.09.2017
comment
@Bergi Пожалуйста, посмотрите мое редактирование. Я не уверен, как заставить мангуста вызвать ошибку с .save   -  person kdlcruz    schedule 18.09.2017
comment
@Bergi, вставив комментарий внутрь, не сработает, потому что я не могу до него добраться. Кстати, спасибо за комментарий :)   -  person kdlcruz    schedule 18.09.2017
comment
Вы не можете заставить мангуста что-либо делать, но вы можете просто издеваться над save? Какие библиотеки вы используете для тестирования?   -  person Bergi    schedule 18.09.2017


Ответы (1)


В твоем случае

group.save()
   .then(reply)
   .catch(  /* istanbul ignore next */(error) => reply(boomify(error)))

Кроме того, вы можете завернуть свой улов в другой блок.

 try {
    stuff()
  } catch (err) {
    /* istanbul ignore next */ {
      console.error(err)
      throw err
    }
  }

person Hithesh k    schedule 17.12.2020