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.
106 lines
4.8 KiB
JavaScript
106 lines
4.8 KiB
JavaScript
import { ZodFirstPartyTypeKind } from "zod/v3";
|
|
import { parseAnyDef } from "./parsers/any.js";
|
|
import { parseArrayDef } from "./parsers/array.js";
|
|
import { parseBigintDef } from "./parsers/bigint.js";
|
|
import { parseBooleanDef } from "./parsers/boolean.js";
|
|
import { parseBrandedDef } from "./parsers/branded.js";
|
|
import { parseCatchDef } from "./parsers/catch.js";
|
|
import { parseDateDef } from "./parsers/date.js";
|
|
import { parseDefaultDef } from "./parsers/default.js";
|
|
import { parseEffectsDef } from "./parsers/effects.js";
|
|
import { parseEnumDef } from "./parsers/enum.js";
|
|
import { parseIntersectionDef } from "./parsers/intersection.js";
|
|
import { parseLiteralDef } from "./parsers/literal.js";
|
|
import { parseMapDef } from "./parsers/map.js";
|
|
import { parseNativeEnumDef } from "./parsers/nativeEnum.js";
|
|
import { parseNeverDef } from "./parsers/never.js";
|
|
import { parseNullDef } from "./parsers/null.js";
|
|
import { parseNullableDef } from "./parsers/nullable.js";
|
|
import { parseNumberDef } from "./parsers/number.js";
|
|
import { parseObjectDef } from "./parsers/object.js";
|
|
import { parseOptionalDef } from "./parsers/optional.js";
|
|
import { parsePipelineDef } from "./parsers/pipeline.js";
|
|
import { parsePromiseDef } from "./parsers/promise.js";
|
|
import { parseRecordDef } from "./parsers/record.js";
|
|
import { parseSetDef } from "./parsers/set.js";
|
|
import { parseStringDef } from "./parsers/string.js";
|
|
import { parseTupleDef } from "./parsers/tuple.js";
|
|
import { parseUndefinedDef } from "./parsers/undefined.js";
|
|
import { parseUnionDef } from "./parsers/union.js";
|
|
import { parseUnknownDef } from "./parsers/unknown.js";
|
|
import { parseReadonlyDef } from "./parsers/readonly.js";
|
|
export const selectParser = (def, typeName, refs) => {
|
|
switch (typeName) {
|
|
case ZodFirstPartyTypeKind.ZodString:
|
|
return parseStringDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodNumber:
|
|
return parseNumberDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodObject:
|
|
return parseObjectDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodBigInt:
|
|
return parseBigintDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodBoolean:
|
|
return parseBooleanDef();
|
|
case ZodFirstPartyTypeKind.ZodDate:
|
|
return parseDateDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodUndefined:
|
|
return parseUndefinedDef(refs);
|
|
case ZodFirstPartyTypeKind.ZodNull:
|
|
return parseNullDef(refs);
|
|
case ZodFirstPartyTypeKind.ZodArray:
|
|
return parseArrayDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodUnion:
|
|
case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:
|
|
return parseUnionDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodIntersection:
|
|
return parseIntersectionDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodTuple:
|
|
return parseTupleDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodRecord:
|
|
return parseRecordDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodLiteral:
|
|
return parseLiteralDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodEnum:
|
|
return parseEnumDef(def);
|
|
case ZodFirstPartyTypeKind.ZodNativeEnum:
|
|
return parseNativeEnumDef(def);
|
|
case ZodFirstPartyTypeKind.ZodNullable:
|
|
return parseNullableDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodOptional:
|
|
return parseOptionalDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodMap:
|
|
return parseMapDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodSet:
|
|
return parseSetDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodLazy:
|
|
return () => def.getter()._def;
|
|
case ZodFirstPartyTypeKind.ZodPromise:
|
|
return parsePromiseDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodNaN:
|
|
case ZodFirstPartyTypeKind.ZodNever:
|
|
return parseNeverDef(refs);
|
|
case ZodFirstPartyTypeKind.ZodEffects:
|
|
return parseEffectsDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodAny:
|
|
return parseAnyDef(refs);
|
|
case ZodFirstPartyTypeKind.ZodUnknown:
|
|
return parseUnknownDef(refs);
|
|
case ZodFirstPartyTypeKind.ZodDefault:
|
|
return parseDefaultDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodBranded:
|
|
return parseBrandedDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodReadonly:
|
|
return parseReadonlyDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodCatch:
|
|
return parseCatchDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodPipeline:
|
|
return parsePipelineDef(def, refs);
|
|
case ZodFirstPartyTypeKind.ZodFunction:
|
|
case ZodFirstPartyTypeKind.ZodVoid:
|
|
case ZodFirstPartyTypeKind.ZodSymbol:
|
|
return undefined;
|
|
default:
|
|
return ((_) => undefined)(typeName);
|
|
}
|
|
};
|