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.
63 lines
2.4 KiB
JavaScript
63 lines
2.4 KiB
JavaScript
/**
|
|
* @fileoverview Main entrypoint for libraries using yargs-parser in Node.js
|
|
* CJS and ESM environments.
|
|
*
|
|
* @license
|
|
* Copyright (c) 2016, Contributors
|
|
* SPDX-License-Identifier: ISC
|
|
*/
|
|
var _a, _b, _c;
|
|
import { format } from 'util';
|
|
import { normalize, resolve } from 'path';
|
|
import { camelCase, decamelize, looksLikeNumber } from './string-utils.js';
|
|
import { YargsParser } from './yargs-parser.js';
|
|
import { readFileSync } from 'fs';
|
|
// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our
|
|
// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.
|
|
const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)
|
|
? Number(process.env.YARGS_MIN_NODE_VERSION)
|
|
: 12;
|
|
const nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);
|
|
if (nodeVersion) {
|
|
const major = Number(nodeVersion.match(/^([^.]+)/)[1]);
|
|
if (major < minNodeVersion) {
|
|
throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
|
|
}
|
|
}
|
|
// Creates a yargs-parser instance using Node.js standard libraries:
|
|
const env = process ? process.env : {};
|
|
const parser = new YargsParser({
|
|
cwd: process.cwd,
|
|
env: () => {
|
|
return env;
|
|
},
|
|
format,
|
|
normalize,
|
|
resolve,
|
|
// TODO: figure out a way to combine ESM and CJS coverage, such that
|
|
// we can exercise all the lines below:
|
|
require: (path) => {
|
|
if (typeof require !== 'undefined') {
|
|
return require(path);
|
|
}
|
|
else if (path.match(/\.json$/)) {
|
|
// Addresses: https://github.com/yargs/yargs/issues/2040
|
|
return JSON.parse(readFileSync(path, 'utf8'));
|
|
}
|
|
else {
|
|
throw Error('only .json config files are supported in ESM');
|
|
}
|
|
}
|
|
});
|
|
const yargsParser = function Parser(args, opts) {
|
|
const result = parser.parse(args.slice(), opts);
|
|
return result.argv;
|
|
};
|
|
yargsParser.detailed = function (args, opts) {
|
|
return parser.parse(args.slice(), opts);
|
|
};
|
|
yargsParser.camelCase = camelCase;
|
|
yargsParser.decamelize = decamelize;
|
|
yargsParser.looksLikeNumber = looksLikeNumber;
|
|
export default yargsParser;
|