# JS-Logik-Tests (Node, ohne Browser) Stub-Tests für `backend/static/js/map-offline.js` (IndexedDB/pmtiles/fetch gemockt): ``` for f in tests/js/test-map-offline*.js; do node "$f" backend/static/js/map-offline.js; done ``` - r1: Budget-Download, Korridor, Coverage, Deadzone-Dedupe - r3: downloadBbox, Zu-groß-Schutz, totalBytes, Prefetch-Throttle, Cap-Guard, persist() - r4: Minimal-Speicher-Modell (Prune, Netz-Probe, clear behält Zonen, Nähe/Verify, Färbung) - r5: Bbox-Replace (aufgehobene Warnungen), 24h-Alert-Refresh, removeDeadZone, ensureRouteCorridors - r6: Standort-Grundversorgung (ensureHomeArea: lädt/skippt/Cap, überlebt clear) - r7: selektives Löschen (Korridor-Keep via keepTracks, manuelle Gebiete weg, Komplett-Wipe-Fallback) Eigenständig (kein Stub-Argument nötig): ``` node tests/js/test-nav-loop-closestidx.js ``` - nav-loop-closestidx: Navi-Erst-Fix bei Runden springt nicht ans Track-Ende (spiegelt `_closestIdx` aus `js/pages/routes.js`) — Bugfix Angie/Deining 09.06.2026 ⚠️ Node 21+: eingebautes `navigator`-Global — Stubs via `Object.defineProperty(globalThis, 'navigator', …)`, ein einfaches `global.navigator =` wird still verschluckt.