Clear chart stale retry state

This commit is contained in:
2569718930@qq.com
2026-06-10 00:42:07 +08:00
parent 658f29c655
commit afdfe03174
3 changed files with 42 additions and 25 deletions
@@ -191,6 +191,22 @@ export async function runTests() {
chartCanvasSourceIncludes(chartSource, "handleRetryDetail"),
"city detail charts should show stale cache first and expose a retryable unavailable state",
);
const successfulHourlyDetailBlock =
/const applySuccessfulHourlyDetail = useCallback\([\s\S]*?\n \}, \[\]\);/.exec(chartSource)?.[0] || "";
assert(
successfulHourlyDetailBlock.includes("setDetailError(null)") &&
successfulHourlyDetailBlock.includes("setShowingStaleDetail(false)") &&
successfulHourlyDetailBlock.includes("setHourly(data)"),
"successful city detail refreshes must clear stale-cache retry state when fresh detail arrives",
);
const rawSuccessfulSetHourlyCalls = chartSource
.replace(successfulHourlyDetailBlock, "")
.match(/setHourly\(data\);/g) || [];
assert(
rawSuccessfulSetHourlyCalls.length === 0 &&
(chartSource.match(/applySuccessfulHourlyDetail\(data/g) || []).length >= 5,
"all successful city detail fetch branches should use the shared success handler",
);
assert(
chartSource.includes("const showDetailErrorBadge = !compact || isActive || isMaximized") &&
chartSource.includes("showDetailErrorBadge={showDetailErrorBadge}") &&