Selektives Loeschen: auch Funkloch-Gebiete bleiben + Keep-Set haertung

Rene: Funkloecher + Routen waren nach 'Alles loeschen' weiter weg.
- Funkloch-Regionen jetzt im Keep-Set (geloescht wird NUR Manuelles);
  Zonen behalten ihren Fuellstatus (Komplett-Wipe setzt weiter zurueck)
- Korridor-Migration beim Loeschen: keepTracks=[{name,track}] schreibt
  Tracks in Alt-Eintraege ohne r.track (Bestand vor v1236) bzw. legt
  fehlende Korridor-Regionen an — kein Warten auf Self-Healing
- clear() liefert Summary; Toast zeigt 'behalten: Standort, X Routen,
  Y Funkloch-Gebiete' — Diagnose-Sichtbarkeit fuer Geraetetests
Bump v1237
This commit is contained in:
rene 2026-06-06 13:55:37 +02:00
parent ca97613938
commit 2cdb743ce7
9 changed files with 94 additions and 38 deletions

View file

@ -54,6 +54,17 @@ const MO = global.window.MapOffline;
const regs = stores.meta.get('regions') || [];
if (!regs.length || regs.some(r => r.type === 'gebiet')) throw new Error('Regions-Meta falsch gefiltert');
// 1b. Funkloch-Gebiet bleibt ebenfalls (René 2026-06-08: nur Manuelles löschen)
await MO.downloadAround(48.5, 12.5, { budgetMB: 0.005, type: 'funkloch' });
await MO.markDeadZone(48.5, 12.5);
stores.meta.get('deadzones').forEach(z => z.filled = true);
const s1b = await MO.clear();
console.log('Funkloch-Keep:', JSON.stringify(s1b), '— Zone gefüllt geblieben:', stores.meta.get('deadzones')[0].filled === true);
if (!s1b.funkloch) throw new Error('Funkloch-Gebiet überlebte nicht');
if (stores.meta.get('deadzones')[0].filled !== true) throw new Error('Zonen-Status fälschlich zurückgesetzt');
const fzKeys = [...stores.tiles.keys()].filter(k => /^1[0-4]\//.test(k)).length;
if (!fzKeys) throw new Error('Funkloch-Kacheln weg');
// 2. clear() OHNE keepTracks: Korridor-Keep kommt aus der Region-Meta (r.track)
const afterSel = stores.tiles.size;
await MO.clear();
@ -68,7 +79,9 @@ const MO = global.window.MapOffline;
await MO.clear();
console.log('Komplett-Wipe: tiles =', stores.tiles.size, '— Zonen:', (stores.meta.get('deadzones') || []).length);
if (stores.tiles.size !== 0) throw new Error('Komplett-Wipe unvollständig');
if ((stores.meta.get('deadzones') || []).length !== 1) throw new Error('Zonen weg');
const wipeZones = stores.meta.get('deadzones') || [];
if (!wipeZones.length) throw new Error('Zonen weg');
if (wipeZones.some(z => z.filled)) throw new Error('Komplett-Wipe muss Zonen auf ungefüllt setzen');
console.log('\nALLE RUNDE-7-TESTS BESTANDEN');
})().catch(e => { console.error('FEHLER:', e.message); process.exit(1); });