Почему результат document.getElementsByClassName () пуст в модульном тесте с жасмином? - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь написать модульный тест для моего angular компонента. Шаблон содержит следующую строку:

<p [innerHTML]="dialogMessage | highlightError | highlightWarning" class="text-left"></p>

В текстовом файле я изменяю диалоговое сообщение, удаляя некоторые теги html:

const highlightedElements = document.getElementsByClassName('result-element');

if (highlightedElements && highlightedElements.length) {
// some modifications
}

Модульный тест:

component.dialogMessage = '<span class="result-element">test</span>';
component.searchString = '';

fixture.detectChanges();

// act
component.search();

Этот код работает при использовании в программе, но не в модульном тесте. В модульном тесте коллекция highlightedElements всегда пуста (она не выполняет код в блоке if). Это из-за innerHTML? Или я должен ждать что-то, чтобы завершить загрузку? Я также пытался вернуть что-то из метода document.getElementsByClassName(), следя за ним, но затем произошла другая ошибка.

...