Покрытие кода Стамбула - если путь не выбран

Ниже приведена функция, для которой можно найти прилагаемый отчет о покрытии Стамбула.

export function getControlFromId(controlId, ancestorControl) {
  if (!(controlId && ancestorControl)) {
    return undefined;
  }
  if (controlId === ancestorControl.id) {
    return ancestorControl;
  }

  if (ancestorControl.controls) {
    for (const control of ancestorControl.controls) {
      const result = getControlFromId(controlId, control);
      if (result) {
        return result;
      }
    }
  }
  return undefined;
}

Отчет о покрытии в Стамбуле

Проблема: Почему он говорит, что если путь не выбран? На изображении четко видны линии, если выполняется цикл.

Пример тестовых данных:

const ancestorControl = {
        name: 'form',
        controls: [
          {
            name: 'Section',
            id: 1,
          },
        ],
      };

person Vinisha Donthula    schedule 24.07.2019    source источник


Ответы (1)


Насколько я понимаю, это показывает, что ваше условие if частично выполнено, что означает, что вы тестируете положительный поток, где доступен ancestorControl.controls.

Возможно, вы пропустили тестовый пример, в котором ancestorControl.controls недоступен.

person codeLover    schedule 24.07.2019
comment
О, да! Хотя я рассматривал этот случай, дал неверные тестовые данные. Спасибо. - person Vinisha Donthula; 24.07.2019