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

2 lines
2.8 KiB
JavaScript

import*as n from"react";import{CSSTransition as t}from"react-transition-group";import{useUpdateEffect as o}from"primereact/hooks";import{ObjectUtils as e}from"primereact/utils";import r,{PrimeReactContext as i}from"primereact/api";function s(n){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},s(n)}function p(n,t){if("object"!=s(n)||!n)return n;var o=n[Symbol.toPrimitive];if(void 0!==o){var e=o.call(n,t||"default");if("object"!=s(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(n)}function u(n){var t=p(n,"string");return"symbol"==s(t)?t:t+""}function c(n,t,o){return(t=u(t))in n?Object.defineProperty(n,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[t]=o,n}var f={defaultProps:{__TYPE:"CSSTransition",children:void 0},getProps:function(n){return e.getMergedProps(n,f.defaultProps)},getOtherProps:function(n){return e.getDiffProps(n,f.defaultProps)}};function a(n,t){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(n);t&&(e=e.filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.push.apply(o,e)}return o}function l(n){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?a(Object(o),!0).forEach((function(t){c(n,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):a(Object(o)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(o,t))}))}return n}var m=n.forwardRef((function(s,p){var u=f.getProps(s),c=n.useContext(i),a=u.disabled||u.options&&u.options.disabled||c&&!c.cssTransition||!r.cssTransition,m=function(n,t){u.onEnter&&u.onEnter(n,t),u.options&&u.options.onEnter&&u.options.onEnter(n,t)},E=function(n,t){u.onEntering&&u.onEntering(n,t),u.options&&u.options.onEntering&&u.options.onEntering(n,t)},b=function(n,t){u.onEntered&&u.onEntered(n,t),u.options&&u.options.onEntered&&u.options.onEntered(n,t)},d=function(n){u.onExit&&u.onExit(n),u.options&&u.options.onExit&&u.options.onExit(n)},g=function(n){u.onExiting&&u.onExiting(n),u.options&&u.options.onExiting&&u.options.onExiting(n)},y=function(n){u.onExited&&u.onExited(n),u.options&&u.options.onExited&&u.options.onExited(n)};if(o((function(){if(a){var n=e.getRefElement(u.nodeRef);u.in?(m(n,!0),E(n,!0),b(n,!0)):(d(n),g(n),y(n))}}),[u.in]),a)return u.in?u.children:null;var O={nodeRef:u.nodeRef,in:u.in,appear:u.appear,onEnter:m,onEntering:E,onEntered:b,onExit:d,onExiting:g,onExited:y},P=l(l(l({},{classNames:u.classNames,timeout:u.timeout,unmountOnExit:u.unmountOnExit}),u.options||{}),O);return n.createElement(t,P,u.children)}));m.displayName="CSSTransition";export{m as CSSTransition};