Я пытаюсь написать модульный тест для моего 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()
, следя за ним, но затем произошла другая ошибка.