Я очень новичок в тесте Угловой транспортир.В моем приложении я внедряю платформу Protractor для автоматизации тестирования.Теперь у меня есть шаг, где появляется диалоговое окно на основе нажатия кнопки.Внутри диалога есть содержимое диалога, которое содержит два элемента div.Один показывает, успешно ли загружена диаграмма, другой будет отображаться при наличии сообщения об ошибке.Теперь я хочу реализовать условие if-else, которое бы проверяло, какой контент доступен в данный момент.Но проблема в том, что если условие не выполняется.Он всегда переходит в другое условие, даже если существует ошибка-содержимое.
Вот мой класс компонента диалога
<div class="action-row-align dialog-component">
<div class="dialog-content" mat-dialog-content >
<div *ngIf="isLoading && !errorText" class="loading-content">
<mat-spinner></mat-spinner>
<h6>{{ loadingInfoText }}</h6>
</div>
<div class="error-content" *ngIf="!isLoading && errorText" >
<mat-card>
<mat-card-title>{{ 'Error' | translate }}</mat-card-title>
<mat-card-content>{{ errorText }}</mat-card-content>
</mat-card>
</div>
</div>
Мой метод hasClass равен
export class Utility {
static hasClass = (element, className) => element.getAttribute('class').then((classes) => classes.split(' ').indexOf(className) !== -1)
}
И вот мое тестовое состояние
let dialog = element(by.css('.dialog-component'));
let dialogContent = element(by.css('.dialog-content'));
await click.onto(option);
await expect(dialogContent.isDisplayed()).toBe(true);
if (await Utility.hasClass( await dialogContent, 'error-content') === true) {
await console.log(' chart error' );
} else {
await expect(dialog.isDisplayed()).toBe(true);
await expect(chart.isDisplayed()).toBe(true);
}