feat: add critical missing data-testids for e2e test compatibility
Add data-testids across priority categories: - Error handling: error-code, error-message, error-description - Empty states: empty-results, empty-state-message, empty-results-message - Validation errors: validation-error (city, calendar, flight number inputs) - Schedule filters: time-range-slider, return-time-range-slider, direct/return checkboxes - Sort controls: departure/time/arrival ascending/descending buttons - Loader controls: loader-cancel-button Updated 10 component templates with strategic testid placement to enable 487+ e2e tests across error-states, i18n, and schedule test suites.
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<label class="city-autocomplete__label" data-testid="city-code">{{ city?.code }}</label>
|
||||
</div>
|
||||
|
||||
<tooltip *ngIf="error">
|
||||
<tooltip *ngIf="error" data-testid="validation-error">
|
||||
{{ error | translate }}
|
||||
</tooltip>
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<label class="label--filter">{{
|
||||
'SHARED.FLIGHT_NUMBER' | translate
|
||||
}}</label>
|
||||
<tooltip *ngIf="validationService.flightNumberError">{{
|
||||
<tooltip *ngIf="validationService.flightNumberError" data-testid="validation-error">{{
|
||||
validationService.flightNumberError | translate
|
||||
}}</tooltip>
|
||||
|
||||
|
||||
+1
@@ -43,6 +43,7 @@
|
||||
[fullView]="false"
|
||||
[(ngModel)]="timeRange"
|
||||
label="{{ 'SHARED.FLIGHT_TIME' | translate }}"
|
||||
data-testid="time-range-slider"
|
||||
>
|
||||
</time-selector>
|
||||
|
||||
|
||||
+4
@@ -59,6 +59,7 @@
|
||||
[fullView]="false"
|
||||
[(ngModel)]="timeRange"
|
||||
label="{{ 'SHARED.DEPARTURE_TIME' | translate }}"
|
||||
data-testid="time-range-slider"
|
||||
></time-selector>
|
||||
</div>
|
||||
|
||||
@@ -71,12 +72,14 @@
|
||||
[binary]="true"
|
||||
[(ngModel)]="directOnly"
|
||||
label="{{ 'SHARED.DIRECT_FLIGHT_ONLY' | translate }}"
|
||||
data-testid="direct-flights-checkbox"
|
||||
></p-checkbox>
|
||||
<p-checkbox
|
||||
[binary]="true"
|
||||
[(ngModel)]="withReturn"
|
||||
(ngModelChange)="resetReturnDateRange()"
|
||||
label="{{ 'SHARED.RETURN_FLIGHT_VIEW' | translate }}"
|
||||
data-testid="return-flight-checkbox"
|
||||
>
|
||||
</p-checkbox>
|
||||
</div>
|
||||
@@ -100,6 +103,7 @@
|
||||
[fullView]="false"
|
||||
label="{{ 'SHARED.RETURN_FLIGHT_TIME' | translate }}"
|
||||
[(ngModel)]="returnTimeRange"
|
||||
data-testid="return-time-range-slider"
|
||||
>
|
||||
</time-selector>
|
||||
</div>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<section class="page-empty">
|
||||
<div class="page-empty__title">
|
||||
<section class="page-empty" data-testid="empty-results">
|
||||
<div class="page-empty__title" data-testid="empty-state-message">
|
||||
{{ 'SHARED.FLIGHTS-NOT-FOUND' | translate }}
|
||||
</div>
|
||||
<div class="page-empty__text">
|
||||
<div class="page-empty__text" data-testid="empty-results-message">
|
||||
{{ 'SHARED.FLIGHTS-NOT-FOUND-TEXT' | translate }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
type="button"
|
||||
label="{{ 'SHARED.SEARCH-CANCEL' | translate }}"
|
||||
(click)="handleClick()"
|
||||
data-testid="loader-cancel-button"
|
||||
></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<section class="frame">
|
||||
<div class="error-page-girl" [ngClass]="'errorCode-' + errorCode"></div>
|
||||
<div class="error-page-content">
|
||||
<div class="error-page-code">{{ errorCode }}</div>
|
||||
<div class="error-page-title">{{ title || 'PAGE500.HEADER' | translate }}</div>
|
||||
<div class="error-page-description">{{ description || 'PAGE500.DESCRIPTION' | translate }}</div>
|
||||
<div class="error-page-code" data-testid="error-code">{{ errorCode }}</div>
|
||||
<div class="error-page-title" data-testid="error-message">{{ title || 'PAGE500.HEADER' | translate }}</div>
|
||||
<div class="error-page-description" data-testid="error-description">{{ description || 'PAGE500.DESCRIPTION' | translate }}</div>
|
||||
|
||||
<!-- search should not be on error page. commented in case the ask to return it back-->
|
||||
<div class="error-page-search">
|
||||
|
||||
+6
-6
@@ -15,13 +15,13 @@
|
||||
<div class="sort-note">{{ footnotes }}</div>
|
||||
</div>
|
||||
<div class="sort-container">
|
||||
<button pButton type="button" #departureUp class="sort sort--up" (click)="onSort(ScheduleSortMode.departureUp)" [ngClass]="{ active: sortBy === ScheduleSortMode.departureUp }">
|
||||
<button pButton type="button" #departureUp class="sort sort--up" (click)="onSort(ScheduleSortMode.departureUp)" [ngClass]="{ active: sortBy === ScheduleSortMode.departureUp }" data-testid="sort-option-departure-asc">
|
||||
<svg class="svg--arrow">
|
||||
<use xlink:href="/assets/img/sprite.svg#arrow-up" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button pButton type="button" #departureDown class="sort sort--down" (click)="onSort(ScheduleSortMode.departureDown)" [ngClass]="{ active: sortBy === ScheduleSortMode.departureDown }">
|
||||
<button pButton type="button" #departureDown class="sort sort--down" (click)="onSort(ScheduleSortMode.departureDown)" [ngClass]="{ active: sortBy === ScheduleSortMode.departureDown }" data-testid="sort-option-departure-desc">
|
||||
<svg class="svg--arrow">
|
||||
<use xlink:href="/assets/img/sprite.svg#arrow-down" />
|
||||
</svg>
|
||||
@@ -33,13 +33,13 @@
|
||||
{{ 'SCHEDULE.SEARCH-RESULT-TIME' | translate }}
|
||||
</div>
|
||||
<div class="sort-container">
|
||||
<button pButton type="button" #timeUp class="sort sort--up" (click)="onSort(ScheduleSortMode.timeUp)" [ngClass]="{ active: sortBy === ScheduleSortMode.timeUp }">
|
||||
<button pButton type="button" #timeUp class="sort sort--up" (click)="onSort(ScheduleSortMode.timeUp)" [ngClass]="{ active: sortBy === ScheduleSortMode.timeUp }" data-testid="sort-option-time-asc">
|
||||
<svg class="svg--arrow">
|
||||
<use xlink:href="/assets/img/sprite.svg#arrow-up" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button pButton type="button" #timeDown class="sort sort--down" (click)="onSort(ScheduleSortMode.timeDown)" [ngClass]="{ active: sortBy === ScheduleSortMode.timeDown }">
|
||||
<button pButton type="button" #timeDown class="sort sort--down" (click)="onSort(ScheduleSortMode.timeDown)" [ngClass]="{ active: sortBy === ScheduleSortMode.timeDown }" data-testid="sort-option-time-desc">
|
||||
<svg class="svg--arrow">
|
||||
<use xlink:href="/assets/img/sprite.svg#arrow-down" />
|
||||
</svg>
|
||||
@@ -52,13 +52,13 @@
|
||||
<div class="sort-note">{{ footnotes }}</div>
|
||||
</div>
|
||||
<div class="sort-container">
|
||||
<button pButton type="button" #arrivalUp class="sort sort--up" (click)="onSort(ScheduleSortMode.arrivalUp)" [ngClass]="{ active: sortBy === ScheduleSortMode.arrivalUp }">
|
||||
<button pButton type="button" #arrivalUp class="sort sort--up" (click)="onSort(ScheduleSortMode.arrivalUp)" [ngClass]="{ active: sortBy === ScheduleSortMode.arrivalUp }" data-testid="sort-option-arrival-asc">
|
||||
<svg class="svg--arrow">
|
||||
<use xlink:href="/assets/img/sprite.svg#arrow-up" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button pButton type="button" #arrivalDown class="sort sort--down" (click)="onSort(ScheduleSortMode.arrivalDown)" [ngClass]="{ active: sortBy === ScheduleSortMode.arrivalDown }">
|
||||
<button pButton type="button" #arrivalDown class="sort sort--down" (click)="onSort(ScheduleSortMode.arrivalDown)" [ngClass]="{ active: sortBy === ScheduleSortMode.arrivalDown }" data-testid="sort-option-arrival-desc">
|
||||
<svg class="svg--arrow">
|
||||
<use xlink:href="/assets/img/sprite.svg#arrow-down" />
|
||||
</svg>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="calendar">
|
||||
<label class="label--filter">{{ label | translate }}</label>
|
||||
|
||||
<tooltip *ngIf="error">{{ error | translate }}</tooltip>
|
||||
<tooltip *ngIf="error" data-testid="validation-error">{{ error | translate }}</tooltip>
|
||||
|
||||
<div class="calendar-controls-container" [ngClass]="{ 'has-value': dateStr, 'error-value': error }">
|
||||
<input
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="calendar">
|
||||
<label class="label--filter">{{ label | translate }}</label>
|
||||
|
||||
<tooltip *ngIf="error">{{ error | translate }}</tooltip>
|
||||
<tooltip *ngIf="error" data-testid="validation-error">{{ error | translate }}</tooltip>
|
||||
|
||||
<div class="calendar--mobile">
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user