У меня есть некоторый код HTMl в компоненте с именем test.component
. В файле HTML при нажатии кнопки с идентификатором subMenuBtn
становятся видны еще 3 кнопки. Из них я хочу проверить, вызывается ли определенная функция, когда вызывается кнопка с идентификатором newSearchBtn
.
Фрагмент HTML выглядит следующим образом:
<a class="sub-menu-button" [matMenuTriggerFor]="menu" id ="subMenuBtn"
[class.full-opacity]="getNodeResult(node).highlight" [class.highlight]="text.highlight"
matTooltip="Search options..." [matTooltipShowDelay]="1000">{{ text.text }}</a>
<mat-menu #menu="matMenu" class="hover-options-vertical">
<button id="newSearchBtn" mat-menu-item matTooltip="New search''"
(click)="newSearch(text.text)">New Search</button>
</mat-menu>
В мой тест spe c, пока у меня есть это:
it('should call the afterClose function if New is clicked', () => {
fixture.detectChanges();
spyOn(component, 'newSearch');
let origButton = fixture.nativeElement.querySelector('#subMenuBtn');
expect(origButton).toBeTruthy();
origButton.click();
fixture.detectChanges();
let button = fixture.nativeElement.querySelector('#newSearchBtn');
expect(button).toBeTruthy();
button.click();
expect(component.newSearch).toHaveBeenCalled();
});
Кнопка origButton
обнаруживается при прохождении expect(origButton).toBeTruthy();
. Однако ошибка появляется в строке expect(button).toBeTruthy();
, что означает, что эта кнопка не отображается после моего нажатия.