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
+15
View File
@@ -0,0 +1,15 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
import { TaskExecutorFactory } from '../../src';
import { NodePackageTaskFactoryOptions } from '../package-manager/options';
import { RepositoryInitializerTaskFactoryOptions } from '../repo-init/options';
export declare class BuiltinTaskExecutor {
static readonly NodePackage: TaskExecutorFactory<NodePackageTaskFactoryOptions>;
static readonly RepositoryInitializer: TaskExecutorFactory<RepositoryInitializerTaskFactoryOptions>;
static readonly RunSchematic: TaskExecutorFactory<{}>;
}
+35
View File
@@ -0,0 +1,35 @@
"use strict";
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BuiltinTaskExecutor = void 0;
const executor_1 = __importDefault(require("../package-manager/executor"));
const options_1 = require("../package-manager/options");
const executor_2 = __importDefault(require("../repo-init/executor"));
const options_2 = require("../repo-init/options");
const executor_3 = __importDefault(require("../run-schematic/executor"));
const options_3 = require("../run-schematic/options");
class BuiltinTaskExecutor {
static NodePackage = {
name: options_1.NodePackageName,
create: async (options) => (0, executor_1.default)(options),
};
static RepositoryInitializer = {
name: options_2.RepositoryInitializerName,
create: async (options) => (0, executor_2.default)(options),
};
static RunSchematic = {
name: options_3.RunSchematicName,
create: async () => (0, executor_3.default)(),
};
}
exports.BuiltinTaskExecutor = BuiltinTaskExecutor;
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AAGH,2EAA8D;AAC9D,wDAA4F;AAC5F,qEAAkE;AAClE,kDAG8B;AAC9B,yEAA6D;AAC7D,sDAA4D;AAE5D,MAAa,mBAAmB;IAC9B,MAAM,CAAU,WAAW,GAAuD;QAChF,IAAI,EAAE,yBAAe;QACrB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,kBAAmB,EAAC,OAAO,CAAqB;KAC5E,CAAC;IACF,MAAM,CAAU,qBAAqB,GACnC;QACE,IAAI,EAAE,mCAAyB;QAC/B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,kBAA6B,EAAC,OAAO,CAAqB;KACtF,CAAC;IACJ,MAAM,CAAU,YAAY,GAA4B;QACtD,IAAI,EAAE,0BAAgB;QACtB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,kBAAoB,GAAsB;KAC/D,CAAC;;AAbJ,kDAcC"}