test: implement visibility policy and chart logic verification tests for temperature series

This commit is contained in:
2569718930@qq.com
2026-05-29 23:09:16 +08:00
parent 68416b058e
commit 53268560ec
2 changed files with 40 additions and 10 deletions
@@ -226,8 +226,45 @@ export function runTests() {
"Shenzhen HKO observations should remain visible by default",
);
assert(
!__isTemperatureSeriesVisibleByDefaultForTest("new york", "madis"),
"non-Hong Kong/Shenzhen airport-primary observations should be hidden by default",
__isTemperatureSeriesVisibleByDefaultForTest("new york", "madis"),
"airport-primary weather-station observations should be visible by default",
);
const amsterdamKnmi = __buildTemperatureChartDataForTest(
{
city: "amsterdam",
local_date: "2026-05-29",
local_time: "17:03",
tz_offset_seconds: 2 * 60 * 60,
airport: "EHAM",
} as any,
{
localTime: "17:03",
times: ["00:00", "06:00", "12:00", "18:00"],
temps: [19, 18, 27, 20],
airportPrimary: {
source_code: "knmi",
source_label: "KNMI",
temp: 19.0,
obs_time: "2026-05-29T15:03:00Z",
},
airportPrimaryTodayObs: [
{ time: "2026-05-29T13:00:00Z", temp: 26.2 },
{ time: "2026-05-29T14:00:00Z", temp: 24.5 },
{ time: "2026-05-29T15:00:00Z", temp: 19.9 },
],
} as any,
"1D",
);
const amsterdamDefaultSeries = __getActiveTemperatureSeriesForTest(
"amsterdam",
amsterdamKnmi.series as any,
{},
true,
);
assert(
amsterdamDefaultSeries.some((item: any) => item.key === "madis" && item.label === "KNMI"),
"Amsterdam KNMI weather-station curve should be visible by default",
);
const ankaraMgmWithMetarBackup = __buildTemperatureChartDataForTest(
@@ -95,14 +95,7 @@ function isTemperatureSeriesVisibleByDefault(city: string, seriesKey: string) {
);
}
if (seriesKey === "madis") {
const cityKey = normalizeCityKey(city);
return (
cityKey === "hongkong" ||
cityKey === "laufaushan" ||
cityKey === "shenzhen" ||
cityKey === "ankara" ||
cityKey === "istanbul"
);
return true;
}
return true;
}