Split from #2722, its last checkbox. It also takes the pull page's check row (src/web/pages/pull.ts:282, data-live-every="5" while a check runs) onto check.* events.
Done looks like:
[ ] pull.ts's running check row uses data-live="check.*" and no data-live-every.
[ ] A test test/no-polling.test.ts scans src/web for data-live-every, refresh: {, http-equiv="refresh", and setInterval calls that fetch or reload. It fails on any hit not in a short allowlist that names each file with its reason: the restart page in sw.ts, migrate and mirror progress, backups moving, clocks that only redraw text, and fleet-graph.ts until it has an event.
[ ] Adding a new timer reload anywhere in src/web turns the test red (shown by a case that feeds it a fake file).
Split from #2722, its last checkbox. It also takes the pull page's check row (
src/web/pages/pull.ts:282,data-live-every="5"while a check runs) ontocheck.*events.Done looks like:
pull.ts's running check row usesdata-live="check.*"and nodata-live-every.test/no-polling.test.tsscanssrc/webfordata-live-every,refresh: {,http-equiv="refresh", andsetIntervalcalls that fetch or reload. It fails on any hit not in a short allowlist that names each file with its reason: the restart page insw.ts, migrate and mirror progress, backups moving, clocks that only redraw text, andfleet-graph.tsuntil it has an event.src/webturns the test red (shown by a case that feeds it a fake file).Files:
src/web/pages/pull.ts,test/no-polling.test.ts.