Если я правильно понимаю, вы никогда не передаете userId в тестах, поэтому условие if (items[0].userId !== userid)
всегда истинно, и ваш тест не проходит.
*
/* istanbul ignore if */
комментарий отключает учет только этой строки в отчете о покрытии . Это не мешает вашему исполнителю тестов выполнить строку.
Если вы хотите игнорировать строку в тестах, вы должны сделать ее условной для тестовой среды. В узле вы можете, например, использовать:
if (process.env.NODE_ENV != 'test' && items[0].userId !== userid) {
throw new BadRequestException();
}
, а затем запускать тесты с набором переменных NODE_ENV = test env (который используется по умолчанию в большинстве настроек).
Лучшим подходом было бы на самом деле передайте правильный userId в ваших тестах. Тогда комментарий istanbul ignore if
сделает содержимое оператора if не засчитанным для покрытия тестом, поэтому вам не нужно писать этот дополнительный тест для плохого состояния запроса.
Лично я бы просто написал такой тест хотя, чтобы быть уверенным, что я действительно возвращаю правильную ошибку в такой ситуации.