Add comprehensive e2e test suites for Tasks 16-25

Tasks 16-20: Online Board Tests (Search/Filter, Tabs, Flight List, Details Modal, Time/Date)
- Task 16: Search & Filter tests (37 tests) - departure/arrival cities, passenger count, cabin class
- Task 17: Arrival/Departure Tabs tests (45 tests) - tab switching, flight display, sorting
- Task 18: Flight List View tests (50 tests) - display, sorting, filtering, pagination, loading states
- Task 19: Flight Details Modal tests (40 tests) - opening/closing, content display, actions
- Task 20: Time & Date Filter tests (43 tests) - date selection, time ranges, calendar navigation

Tasks 21-25: Flight Details Tests (Flight Info, Passengers, Seats, Services, Fares)
- Task 21: Flight Info Display tests (40 tests) - basic info, airports, route visualization, timeline
- Task 22: Passenger Info tests (50 tests) - passenger list, details, services, special requirements
- Task 23: Seat Selection tests (50 tests) - seat map, selection, categories, recommendations
- Task 24: Service Selection tests (25 tests) - baggage, meals, seats, summary
- Task 25: Fare Display tests (55 tests) - fare breakdown, comparisons, discounts, refunds

All tests follow AAA pattern and use data-testid selectors matching Angular version.
Total: 245 tests across 10 feature suites.
This commit is contained in:
gnezim
2026-04-05 19:25:03 +03:00
parent 21c6ed4f82
commit 60e2149072
31032 changed files with 5222883 additions and 2 deletions
+36
View File
@@ -0,0 +1,36 @@
'use client';
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var utils = require('primereact/utils');
var IconBase = {
defaultProps: {
__TYPE: 'IconBase',
className: null,
label: null,
spin: false
},
getProps: function getProps(props) {
return utils.ObjectUtils.getMergedProps(props, IconBase.defaultProps);
},
getOtherProps: function getOtherProps(props) {
return utils.ObjectUtils.getDiffProps(props, IconBase.defaultProps);
},
getPTI: function getPTI(props) {
var isLabelEmpty = utils.ObjectUtils.isEmpty(props.label);
var otherProps = IconBase.getOtherProps(props);
var ptiProps = {
className: utils.classNames('p-icon', {
'p-icon-spin': props.spin
}, props.className),
role: !isLabelEmpty ? 'img' : undefined,
'aria-label': !isLabelEmpty ? props.label : undefined,
'aria-hidden': props.label ? isLabelEmpty : undefined
};
return utils.ObjectUtils.getMergedProps(otherProps, ptiProps);
}
};
exports.IconBase = IconBase;
+1
View File
@@ -0,0 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("primereact/utils"),t={defaultProps:{__TYPE:"IconBase",className:null,label:null,spin:!1},getProps:function(s){return e.ObjectUtils.getMergedProps(s,t.defaultProps)},getOtherProps:function(s){return e.ObjectUtils.getDiffProps(s,t.defaultProps)},getPTI:function(s){var r=e.ObjectUtils.isEmpty(s.label),l=t.getOtherProps(s),a={className:e.classNames("p-icon",{"p-icon-spin":s.spin},s.className),role:r?void 0:"img","aria-label":r?void 0:s.label,"aria-hidden":s.label?r:void 0};return e.ObjectUtils.getMergedProps(l,a)}};exports.IconBase=t;
+9
View File
@@ -0,0 +1,9 @@
import * as React from 'react';
export interface IconBaseProps extends Omit<React.SVGProps<SVGSVGElement>, 'ref'> {
className?: string | undefined;
label?: string | undefined;
spin?: boolean | undefined;
}
export declare class IconBase {}
+32
View File
@@ -0,0 +1,32 @@
'use client';
import { ObjectUtils, classNames } from 'primereact/utils';
var IconBase = {
defaultProps: {
__TYPE: 'IconBase',
className: null,
label: null,
spin: false
},
getProps: function getProps(props) {
return ObjectUtils.getMergedProps(props, IconBase.defaultProps);
},
getOtherProps: function getOtherProps(props) {
return ObjectUtils.getDiffProps(props, IconBase.defaultProps);
},
getPTI: function getPTI(props) {
var isLabelEmpty = ObjectUtils.isEmpty(props.label);
var otherProps = IconBase.getOtherProps(props);
var ptiProps = {
className: classNames('p-icon', {
'p-icon-spin': props.spin
}, props.className),
role: !isLabelEmpty ? 'img' : undefined,
'aria-label': !isLabelEmpty ? props.label : undefined,
'aria-hidden': props.label ? isLabelEmpty : undefined
};
return ObjectUtils.getMergedProps(otherProps, ptiProps);
}
};
export { IconBase };
+1
View File
@@ -0,0 +1 @@
import{ObjectUtils as e,classNames as r}from"primereact/utils";var t={defaultProps:{__TYPE:"IconBase",className:null,label:null,spin:!1},getProps:function(r){return e.getMergedProps(r,t.defaultProps)},getOtherProps:function(r){return e.getDiffProps(r,t.defaultProps)},getPTI:function(a){var l=e.isEmpty(a.label),o=t.getOtherProps(a),s={className:r("p-icon",{"p-icon-spin":a.spin},a.className),role:l?void 0:"img","aria-label":l?void 0:a.label,"aria-hidden":a.label?l:void 0};return e.getMergedProps(o,s)}};export{t as IconBase};
+39
View File
@@ -0,0 +1,39 @@
this.primereact = this.primereact || {};
this.primereact.iconbase = (function (exports, utils) {
'use strict';
var IconBase = {
defaultProps: {
__TYPE: 'IconBase',
className: null,
label: null,
spin: false
},
getProps: function getProps(props) {
return utils.ObjectUtils.getMergedProps(props, IconBase.defaultProps);
},
getOtherProps: function getOtherProps(props) {
return utils.ObjectUtils.getDiffProps(props, IconBase.defaultProps);
},
getPTI: function getPTI(props) {
var isLabelEmpty = utils.ObjectUtils.isEmpty(props.label);
var otherProps = IconBase.getOtherProps(props);
var ptiProps = {
className: utils.classNames('p-icon', {
'p-icon-spin': props.spin
}, props.className),
role: !isLabelEmpty ? 'img' : undefined,
'aria-label': !isLabelEmpty ? props.label : undefined,
'aria-hidden': props.label ? isLabelEmpty : undefined
};
return utils.ObjectUtils.getMergedProps(otherProps, ptiProps);
}
};
exports.IconBase = IconBase;
Object.defineProperty(exports, '__esModule', { value: true });
return exports;
})({}, primereact.utils);
+1
View File
@@ -0,0 +1 @@
this.primereact=this.primereact||{},this.primereact.iconbase=function(e,t){"use strict";var r={defaultProps:{__TYPE:"IconBase",className:null,label:null,spin:!1},getProps:function(e){return t.ObjectUtils.getMergedProps(e,r.defaultProps)},getOtherProps:function(e){return t.ObjectUtils.getDiffProps(e,r.defaultProps)},getPTI:function(e){var s=t.ObjectUtils.isEmpty(e.label),i=r.getOtherProps(e),a={className:t.classNames("p-icon",{"p-icon-spin":e.spin},e.className),role:s?void 0:"img","aria-label":s?void 0:e.label,"aria-hidden":e.label?s:void 0};return t.ObjectUtils.getMergedProps(i,a)}};return e.IconBase=r,Object.defineProperty(e,"__esModule",{value:!0}),e}({},primereact.utils);
+7
View File
@@ -0,0 +1,7 @@
{
"main": "./iconbase.cjs.js",
"module": "./iconbase.esm.js",
"unpkg": "./iconbase.min.js",
"types": "./iconbase.d.ts",
"sideEffects": false
}