Files
flights_web/tests/fixtures/api/schedule-details.json
T
gnezim ad8367c203 Refine Angular parity: titles, airline header, labels
Search page:
- Title and breadcrumb now read the station dictionaries and render the
  human-friendly route heading (e.g. 'Маршрут: Шереметьево - Пулково')
  for route/departure/arrival/flight search URLs, mirroring Angular.

Details page:
- Main H1 becomes 'Информация о рейсе: SU 6805, Москва - Санкт-Петербург'
  (carrier + flight number + origin/destination cities), not a bare
  flight number.
- Add 'Детали рейса' section header above the accordion to match
  Angular's flight-details-wrapper layout.
- Promote the airline block in BoardDetailsHeader: drop the legacy
  OperatorLogo copy with broken asset paths and hand off to the shared
  <OperatorLogo> under src/ui/flights. Render it with the
  'авиакомпания' caption beside the enlarged flight number.
- Replace hardcoded English 'Leg' / 'Total flying time' / 'Aircraft:'
  with i18n keys, added to all nine locale files.

Test harness:
- Add vi.mock for useDictionaries in the three suites that render
  OnlineBoardSearchPage (the new heading helper calls the hook and
  crashed without ApiClientProvider). 1256 tests passing.
2026-04-17 23:48:06 +03:00

348 lines
7.7 KiB
JSON

{
"data": {
"routes": [
{
"routeType": "Direct",
"operatingBy": {
"scheduled": "FV"
},
"status": "Cancelled",
"id": "290cbb03-669f-48fa-b113-091e212e5a1a",
"flightId": {
"dateLT": "2026-04-17",
"carrier": "SU",
"flightNumber": "6951",
"suffix": "",
"date": "2026-04-16"
},
"flyingTime": "01:25:00",
"leg": {
"departure": {
"scheduled": {
"city": "Москва",
"airport": "Шереметьево",
"countryCode": "RU",
"cityCode": "MOW",
"airportCode": "SVO"
},
"latest": {
"city": "Москва",
"airport": "Шереметьево",
"countryCode": "RU",
"cityCode": "MOW",
"airportCode": "SVO"
},
"terminal": "B",
"times": {
"scheduledDeparture": {
"utc": "2026-04-16T21:30:00Z",
"local": "2026-04-17T00:30:00+03:00",
"dayChange": {
"value": 0,
"title": ""
},
"localTime": "00:30",
"tzOffset": 180.0
},
"estimatedBlockOff": {
"utc": "2026-04-16T21:30:00Z",
"local": "2026-04-17T00:30:00+03:00",
"dayChange": {
"value": 0,
"title": ""
},
"localTime": "00:30",
"tzOffset": 180.0
}
}
},
"arrival": {
"scheduled": {
"city": "Санкт-Петербург",
"airport": "Пулково",
"countryCode": "RU",
"cityCode": "LED",
"airportCode": "LED"
},
"latest": {
"city": "Санкт-Петербург",
"airport": "Пулково",
"countryCode": "RU",
"cityCode": "LED",
"airportCode": "LED"
},
"terminal": "1",
"times": {
"scheduledArrival": {
"utc": "2026-04-16T22:55:00Z",
"local": "2026-04-17T01:55:00+03:00",
"dayChange": {
"value": 0,
"title": ""
},
"localTime": "01:55",
"tzOffset": 180.0
},
"estimatedBlockOn": {
"utc": "2026-04-16T22:55:00Z",
"local": "2026-04-17T01:55:00+03:00",
"dayChange": {
"value": 0,
"title": ""
},
"localTime": "01:55",
"tzOffset": 180.0
}
}
},
"flags": {
"checkinAvailable": false,
"purchaseAvailable": false,
"statusAvailable": true,
"routeChanged": false,
"returnToAirport": false
},
"updated": "2026-04-09T07:09:20Z",
"status": "Cancelled",
"operatingBy": {
"scheduled": "FV"
},
"transition": {},
"daysOfWeek": {
"flight": "16"
},
"flyingTime": "01:25:00",
"equipment": {
"meal": [],
"serviceType": {
"code": "J"
},
"aircraft": {
"scheduled": {
"type": "SU9",
"title": "Sukhoi SuperJet 100"
},
"actualType": {
"type": "SU9",
"title": "Sukhoi SuperJet 100"
}
},
"serviceClasses": [],
"bookingClasses": {}
},
"daysForTabs": [
"20260416",
"20260417",
"20260418",
"20260419",
"20260420",
"20260421",
"20260422",
"20260423",
"20260424",
"20260425",
"20260427",
"20260428",
"20260429",
"20260430",
"20260501",
"20260502",
"20260503",
"20260504",
"20260505",
"20260506",
"20260507",
"20260508"
]
}
}
],
"partners": [],
"daysOfFlight": [
"20260418",
"20260420",
"20260421",
"20260423",
"20260425",
"20260427",
"20260428",
"20260429",
"20260430",
"20260501",
"20260502",
"20260503",
"20260504",
"20260505",
"20260506",
"20260507",
"20260508",
"20260509",
"20260510",
"20260511",
"20260512",
"20260513",
"20260514",
"20260515",
"20260516",
"20260517",
"20260518",
"20260519",
"20260520",
"20260521",
"20260522",
"20260523",
"20260524",
"20260525",
"20260526",
"20260527",
"20260528",
"20260529",
"20260530",
"20260531",
"20260601",
"20260602",
"20260603",
"20260604",
"20260605",
"20260606",
"20260607",
"20260608",
"20260609",
"20260611",
"20260612",
"20260615",
"20260616",
"20260617",
"20260618",
"20260619",
"20260620",
"20260621",
"20260622",
"20260623",
"20260624",
"20260625",
"20260626",
"20260627",
"20260628",
"20260629",
"20260630",
"20260701",
"20260702",
"20260703",
"20260704",
"20260705",
"20260706",
"20260707",
"20260708",
"20260709",
"20260710",
"20260711",
"20260712",
"20260713",
"20260714",
"20260715",
"20260716",
"20260717",
"20260718",
"20260719",
"20260720",
"20260721",
"20260722",
"20260723",
"20260724",
"20260725",
"20260726",
"20260727",
"20260728",
"20260729",
"20260730",
"20260731",
"20260801",
"20260802",
"20260803",
"20260804",
"20260805",
"20260806",
"20260807",
"20260808",
"20260809",
"20260810",
"20260811",
"20260812",
"20260813",
"20260814",
"20260815",
"20260816",
"20260817",
"20260818",
"20260819",
"20260820",
"20260821",
"20260822",
"20260823",
"20260824",
"20260825",
"20260826",
"20260827",
"20260828",
"20260829",
"20260830",
"20260831",
"20260901",
"20260902",
"20260903",
"20260904",
"20260905",
"20260906",
"20260907",
"20260908",
"20260909",
"20260910",
"20260911",
"20260912",
"20260913",
"20260914",
"20260915",
"20260916",
"20260917",
"20260918",
"20260919",
"20260920",
"20260921",
"20260922",
"20260923",
"20260924",
"20260925",
"20260926",
"20260927",
"20260928",
"20260929",
"20260930",
"20261001",
"20261002",
"20261003",
"20261004",
"20261005",
"20261006",
"20261007",
"20261008",
"20261009",
"20261010",
"20261011",
"20261012",
"20261013",
"20261014",
"20261015",
"20261016",
"20261017",
"20261018",
"20261019",
"20261020",
"20261021",
"20261022",
"20261023",
"20261024",
"20261025"
]
}
}