60e2149072
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.
10 lines
3.9 KiB
JavaScript
Executable File
10 lines
3.9 KiB
JavaScript
Executable File
'use strict';
|
|
/**
|
|
* @license Angular
|
|
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
* License: MIT
|
|
*/
|
|
function N(O){O.__load_patch("Error",(u,F,l)=>{let k=l.symbol("zoneJsInternalStackFrames"),o=u[l.symbol("Error")]=u.Error,h={},S,w,A,Z,b;u.Error=i;let E="stackRewrite",p=u.__Zone_Error_BlacklistedStackFrames_policy||u.__Zone_Error_ZoneJsInternalStackFrames_policy||"default";function L(e){let r={zoneName:e.zone.name},n=r;for(;e.parent;){e=e.parent;let t={zoneName:e.zone.name};r.parent=t,r=t}return n}function y(e,r,n=!0){let t=e.split(`
|
|
`),a=0;for(;!(t[a]===S||t[a]===w||t[a]===A||t[a]===Z||t[a]===b)&&a<t.length;)a++;for(;a<t.length&&r;a++){let s=t[a];if(s.trim())switch(h[s]){case 0:t.splice(a,1),a--;break;case 1:r.parent?r=r.parent:r=null,t.splice(a,1),a--;break;default:t[a]+=n?` [${r.zone.name}]`:` [${r.zoneName}]`}}return t.join(`
|
|
`)}function i(){let e=o.apply(this,arguments),r=e.originalStack=e.stack;if(i[E]&&r){let n=l.currentZoneFrame();if(p==="lazy")e[l.symbol("zoneFrameNames")]=L(n);else if(p==="default")try{e.stack=e.zoneAwareStack=y(r,n)}catch(t){}}return this instanceof o&&this.constructor!=o?(Object.keys(e).concat("stack","message","cause").forEach(n=>{let t=e[n];if(t!==void 0)try{this[n]=t}catch(a){}}),this):e}i.prototype=o.prototype,i[k]=h,i[E]=!1;let d=l.symbol("zoneAwareStack");p==="lazy"&&Object.defineProperty(i.prototype,"zoneAwareStack",{configurable:!0,enumerable:!0,get:function(){return this[d]||(this[d]=y(this.originalStack,this[l.symbol("zoneFrameNames")],!1)),this[d]},set:function(e){this.originalStack=e,this[d]=y(this.originalStack,this[l.symbol("zoneFrameNames")],!1)}});let P=["stackTraceLimit","captureStackTrace","prepareStackTrace"],g=Object.keys(o);g&&g.forEach(e=>{P.filter(r=>r===e).length===0&&Object.defineProperty(i,e,{get:function(){return o[e]},set:function(r){o[e]=r}})}),o.hasOwnProperty("stackTraceLimit")&&(o.stackTraceLimit=Math.max(o.stackTraceLimit,15),Object.defineProperty(i,"stackTraceLimit",{get:function(){return o.stackTraceLimit},set:function(e){return o.stackTraceLimit=e}})),o.hasOwnProperty("captureStackTrace")&&Object.defineProperty(i,"captureStackTrace",{value:function(r,n){o.captureStackTrace(r,n)}});let v="zoneCaptureStackTrace";if(Object.defineProperty(i,"prepareStackTrace",{get:function(){return o.prepareStackTrace},set:function(e){return!e||typeof e!="function"?o.prepareStackTrace=e:o.prepareStackTrace=function(r,n){if(n){for(let t=0;t<n.length;t++)if(n[t].getFunctionName()===v){n.splice(t,1);break}}return e.call(this,r,n)}}}),p==="disable")return;let f=F.current.fork({name:"detect",onHandleError:function(e,r,n,t){if(t.originalStack&&Error===i){let a=t.originalStack.split(/\n/),s=!1,T=!1,z=!1;for(;a.length;){let c=a.shift();if(/:\d+:\d+/.test(c)||c==="ZoneAwareError"){let m=c.split("(")[0].split("@")[0],_=1;if(m.indexOf("ZoneAwareError")!==-1&&(m.indexOf("new ZoneAwareError")!==-1?(S=c,w=c.replace("new ZoneAwareError","new Error.ZoneAwareError")):(A=c,Z=c.replace("Error.",""),c.indexOf("Error.ZoneAwareError")===-1&&(b=c.replace("ZoneAwareError","Error.ZoneAwareError"))),h[w]=0),m.indexOf("runGuarded")!==-1?T=!0:m.indexOf("runTask")!==-1?z=!0:m.indexOf("run")!==-1?s=!0:_=0,h[c]=_,s&&T&&z){i[E]=!0;break}}}}return!1}}).fork({name:"child",onScheduleTask:function(e,r,n,t){return e.scheduleTask(n,t)},onInvokeTask:function(e,r,n,t,a,s){return e.invokeTask(n,t,a,s)},onCancelTask:function(e,r,n,t){return e.cancelTask(n,t)},onInvoke:function(e,r,n,t,a,s,T){return e.invoke(n,t,a,s,T)}}),j=Error.stackTraceLimit;Error.stackTraceLimit=100,f.run(()=>{f.runGuarded(()=>{let e=()=>{};f.scheduleEventTask(k,()=>{f.scheduleMacroTask(k,()=>{f.scheduleMicroTask(k,()=>{throw new Error},void 0,r=>{r._transitionTo=e,r.invoke()}),f.scheduleMicroTask(k,()=>{throw Error()},void 0,r=>{r._transitionTo=e,r.invoke()})},void 0,r=>{r._transitionTo=e,r.invoke()},()=>{})},void 0,r=>{r._transitionTo=e,r.invoke()},()=>{})})}),Error.stackTraceLimit=j})}N(Zone);
|