Angular тест, требующий нажатия двух кнопок - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть некоторый код 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();, что означает, что эта кнопка не отображается после моего нажатия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...