Files
gnezim 60e2149072 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.
2026-04-05 19:25:03 +03:00

8 lines
3.2 KiB
JavaScript
Executable File

'use strict';
/**
* @license Angular
* (c) 2010-2026 Google LLC. https://angular.dev/
* License: MIT
*/
var d=Object.defineProperty;var p=(i,e,t)=>e in i?d(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var o=(i,e,t)=>(p(i,typeof e!="symbol"?e+"":e,t),t);var h=class i{constructor(e=null){o(this,"defaultSpecDelegate");o(this,"name","ProxyZone");o(this,"_delegateSpec",null);o(this,"properties",{ProxyZoneSpec:this});o(this,"propertyKeys",null);o(this,"lastTaskState",null);o(this,"isNeedToTriggerHasTask",!1);o(this,"tasks",[]);this.defaultSpecDelegate=e,this.setDelegate(e)}static get(){return Zone.current.get("ProxyZoneSpec")}static isLoaded(){return i.get()instanceof i}static assertPresent(){let e=i.get();if(e===void 0)throw new Error("Expected to be running in 'ProxyZone', but it was not found.");return e}setDelegate(e){let t=this._delegateSpec!==e;this._delegateSpec=e,this.propertyKeys&&this.propertyKeys.forEach(s=>delete this.properties[s]),this.propertyKeys=null,e&&e.properties&&(this.propertyKeys=Object.keys(e.properties),this.propertyKeys.forEach(s=>this.properties[s]=e.properties[s])),t&&this.lastTaskState&&(this.lastTaskState.macroTask||this.lastTaskState.microTask)&&(this.isNeedToTriggerHasTask=!0)}getDelegate(){return this._delegateSpec}resetDelegate(){let e=this.getDelegate();this.setDelegate(this.defaultSpecDelegate)}tryTriggerHasTask(e,t,s){this.isNeedToTriggerHasTask&&this.lastTaskState&&(this.isNeedToTriggerHasTask=!1,this.onHasTask(e,t,s,this.lastTaskState))}removeFromTasks(e){if(this.tasks){for(let t=0;t<this.tasks.length;t++)if(this.tasks[t]===e){this.tasks.splice(t,1);return}}}getAndClearPendingTasksInfo(){if(this.tasks.length===0)return"";let t="--Pending async tasks are: ["+this.tasks.map(s=>{let r=s.data&&Object.keys(s.data).map(n=>n+":"+s.data[n]).join(",");return`type: ${s.type}, source: ${s.source}, args: {${r}}`})+"]";return this.tasks=[],t}onFork(e,t,s,r){return this._delegateSpec&&this._delegateSpec.onFork?this._delegateSpec.onFork(e,t,s,r):e.fork(s,r)}onIntercept(e,t,s,r,n){return this._delegateSpec&&this._delegateSpec.onIntercept?this._delegateSpec.onIntercept(e,t,s,r,n):e.intercept(s,r,n)}onInvoke(e,t,s,r,n,a,c){return this.tryTriggerHasTask(e,t,s),this._delegateSpec&&this._delegateSpec.onInvoke?this._delegateSpec.onInvoke(e,t,s,r,n,a,c):e.invoke(s,r,n,a,c)}onHandleError(e,t,s,r){return this._delegateSpec&&this._delegateSpec.onHandleError?this._delegateSpec.onHandleError(e,t,s,r):e.handleError(s,r)}onScheduleTask(e,t,s,r){return r.type!=="eventTask"&&this.tasks.push(r),this._delegateSpec&&this._delegateSpec.onScheduleTask?this._delegateSpec.onScheduleTask(e,t,s,r):e.scheduleTask(s,r)}onInvokeTask(e,t,s,r,n,a){return r.type!=="eventTask"&&this.removeFromTasks(r),this.tryTriggerHasTask(e,t,s),this._delegateSpec&&this._delegateSpec.onInvokeTask?this._delegateSpec.onInvokeTask(e,t,s,r,n,a):e.invokeTask(s,r,n,a)}onCancelTask(e,t,s,r){return r.type!=="eventTask"&&this.removeFromTasks(r),this.tryTriggerHasTask(e,t,s),this._delegateSpec&&this._delegateSpec.onCancelTask?this._delegateSpec.onCancelTask(e,t,s,r):e.cancelTask(s,r)}onHasTask(e,t,s,r){this.lastTaskState=r,this._delegateSpec&&this._delegateSpec.onHasTask?this._delegateSpec.onHasTask(e,t,s,r):e.hasTask(s,r)}};function l(i){i.ProxyZoneSpec=h}l(Zone);