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

9 lines
2.2 KiB
JavaScript
Executable File

'use strict';
/**
* @license Angular
* (c) 2010-2026 Google LLC. https://angular.dev/
* License: MIT
*/
var N=Object.defineProperty;var A=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var m=(s,c,r)=>c in s?N(s,c,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[c]=r,R=(s,c)=>{for(var r in c||(c={}))O.call(c,r)&&m(s,r,c[r]);if(A)for(var r of A(c))P.call(c,r)&&m(s,r,c[r]);return s};var k=(s,c,r)=>(m(s,typeof c!="symbol"?c+"":c,r),r);function y(s){let c=`
`,r={},u="__creationTrace__",h="STACKTRACE TRACKING",_="__SEP_TAG__",p=_+"@[native]";class d{constructor(){k(this,"error",C());k(this,"timestamp",new Date)}}function f(){return new Error(h)}function S(){try{throw f()}catch(e){return e}}let G=f(),b=S(),C=G.stack?f:b.stack?S:f;function E(e){return e.stack?e.stack.split(c):[]}function F(e,n){let i=E(n);for(let t=0;t<i.length;t++){let a=i[t];r.hasOwnProperty(a)||e.push(i[t])}}function L(e,n){let i=[n?n.trim():""];if(e){let t=new Date().getTime();for(let a=0;a<e.length;a++){let o=e[a],l=o.timestamp,g=`____________________Elapsed ${t-l.getTime()} ms; At: ${l}`;g=g.replace(/[^\w\d]/g,"_"),i.push(p.replace(_,g)),F(i,o.error),t=l.getTime()}}return i.join(c)}function T(){return Error.stackTraceLimit>0}s.longStackTraceZoneSpec={name:"long-stack-trace",longStackTraceLimit:10,getLongStackTrace:function(e){if(!e)return;let n=e[s.__symbol__("currentTaskTrace")];return n?L(n,e.stack):e.stack},onScheduleTask:function(e,n,i,t){if(T()){let a=s.currentTask,o=a&&a.data&&a.data[u]||[];o=[new d].concat(o),o.length>this.longStackTraceLimit&&(o.length=this.longStackTraceLimit),t.data||(t.data={}),t.type==="eventTask"&&(t.data=R({},t.data)),t.data[u]=o}return e.scheduleTask(i,t)},onHandleError:function(e,n,i,t){if(T()){let a=s.currentTask||t.task;if(t instanceof Error&&a){let o=L(a.data&&a.data[u],t.stack);try{t.stack=t.longStack=o}catch(l){}}}return e.handleError(i,t)}};function w(e,n){n>0&&(e.push(E(new d().error)),w(e,n-1))}function I(){if(!T())return;let e=[];w(e,2);let n=e[0],i=e[1];for(let t=0;t<n.length;t++){let a=n[t];if(a.indexOf(h)==-1){let o=a.match(/^\s*at\s+/);if(o){p=o[0]+_+" (http://localhost)";break}}}for(let t=0;t<n.length;t++){let a=n[t],o=i[t];if(a===o)r[a]=!0;else break}}I()}y(Zone);