Cover enrichment, lookup-map, and region ordering in transform tests
This commit is contained in:
@@ -94,3 +94,120 @@ describe("transformDictionaries — filtering", () => {
|
||||
expect([...d.otherCityCodes]).toEqual(["PAR"]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("transformDictionaries — enrichment", () => {
|
||||
it("picks localized city name from title[lang]", () => {
|
||||
const d = transformDictionaries(
|
||||
{
|
||||
regions: [],
|
||||
countries: [],
|
||||
cities: [
|
||||
{ code: "MOW", title: { ru: "Москва", en: "Moscow" }, country_code: "RU", has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
airports: [
|
||||
{ code: "SVO", city_code: "MOW", title: { ru: "Шереметьево", en: "Sheremetyevo" }, has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
},
|
||||
"en",
|
||||
);
|
||||
|
||||
expect(d.cities[0]!.name).toBe("Moscow");
|
||||
expect(d.cities[0]!.airports[0]!.name).toBe("Sheremetyevo");
|
||||
});
|
||||
|
||||
it("looks up countryName from countries dictionary", () => {
|
||||
const d = transformDictionaries(
|
||||
{
|
||||
regions: [],
|
||||
countries: [{ code: "RU", title: { ru: "Россия", en: "Russia" }, world_region_id: 500374 }],
|
||||
cities: [
|
||||
{ code: "MOW", title: { ru: "Москва" }, country_code: "RU", has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
airports: [
|
||||
{ code: "SVO", city_code: "MOW", title: { ru: "Шереметьево" }, has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
},
|
||||
"en",
|
||||
);
|
||||
|
||||
expect(d.cities[0]!.countryName).toBe("Russia");
|
||||
});
|
||||
|
||||
it("sorts a city's airports by localized name", () => {
|
||||
const d = transformDictionaries(
|
||||
{
|
||||
regions: [],
|
||||
countries: [],
|
||||
cities: [
|
||||
{ code: "MOW", title: { ru: "Москва" }, country_code: "RU", has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
airports: [
|
||||
{ code: "SVO", city_code: "MOW", title: { ru: "Шереметьево" }, has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
{ code: "DME", city_code: "MOW", title: { ru: "Домодедово" }, has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
{ code: "VKO", city_code: "MOW", title: { ru: "Внуково" }, has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
},
|
||||
"ru",
|
||||
);
|
||||
|
||||
expect(d.cities[0]!.airports.map((a) => a.code)).toEqual(["VKO", "DME", "SVO"]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("transformDictionaries — lookup maps", () => {
|
||||
it("keys lookup maps by uppercase", () => {
|
||||
const d = transformDictionaries(
|
||||
{
|
||||
regions: [],
|
||||
countries: [],
|
||||
cities: [
|
||||
{ code: "mow", title: { ru: "Москва" }, country_code: "RU", has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
airports: [
|
||||
{ code: "svo", city_code: "mow", title: { ru: "Шереметьево" }, has_afl_flights: true, location: { lat: 55, lon: 37 } },
|
||||
],
|
||||
},
|
||||
"ru",
|
||||
);
|
||||
|
||||
expect(d.cityByCode.get("MOW")?.code).toBe("mow");
|
||||
expect(d.airportByCode.get("SVO")?.code).toBe("svo");
|
||||
});
|
||||
});
|
||||
|
||||
describe("transformDictionaries — regions", () => {
|
||||
it("drops Australia region (world_region_id 500373)", () => {
|
||||
const d = transformDictionaries(
|
||||
{
|
||||
regions: [
|
||||
{ world_region_id: 500373, title: { ru: "Австралия" } },
|
||||
{ world_region_id: 500374, title: { ru: "Россия" } },
|
||||
],
|
||||
countries: [],
|
||||
cities: [],
|
||||
airports: [],
|
||||
},
|
||||
"ru",
|
||||
);
|
||||
|
||||
expect(d.regions.map((r) => r.id)).toEqual([500374]);
|
||||
});
|
||||
|
||||
it("places Russia region first, others alphabetical", () => {
|
||||
const d = transformDictionaries(
|
||||
{
|
||||
regions: [
|
||||
{ world_region_id: 500374, title: { ru: "Россия" } },
|
||||
{ world_region_id: 1, title: { ru: "Азия" } },
|
||||
{ world_region_id: 2, title: { ru: "Европа" } },
|
||||
],
|
||||
countries: [],
|
||||
cities: [],
|
||||
airports: [],
|
||||
},
|
||||
"ru",
|
||||
);
|
||||
|
||||
expect(d.regions.map((r) => r.id)).toEqual([500374, 1, 2]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user