2.4 KiB
R10-Abnahme der Linear-XLSX-Anbindung
Stand: 30.09.2026. R10 schließt Phase 14 mit synthetischen, reproduzierbaren Integrations- und Lasttests ab. Die reale Musterdatei wird dafür nicht benötigt und bleibt unversioniert.
Ende-zu-Ende-Nachweis
tests/revit-xlsx-end-to-end.test.ts verwendet eine dateibasierte SQLite-
Datenbank und prüft in einer Kette:
Erstimport → Objektplanung → Row-Zuordnung → Rückgabe-XLSX
→ Folgeimport → Snapshot/Restore → Projektduplikat
→ Datenbankneustart → Undo → Redo
Der Test bestätigt insbesondere die materialisierte Row-Menge, die Reduktion des älteren Importbatches auf Metadaten, das Remapping aller internen UUIDs im Duplikat und parserfreies Undo/Redo nach dem Neustart.
Last- und Größenmessung
tests/revit-xlsx-scale.test.ts erzeugt 5.000 synthetische Objekte in einer
Linear-kompatiblen XLSX. Der Test misst Erst- und Folgeimport, Command- und
Snapshotgröße, Heap-Wachstum sowie clientseitiges Filtern, Sortieren und das
virtuelle Fenster. Er führt außerdem Snapshot-Restore und Projektduplikat mit
dem vollständigen Zustand aus.
Messung auf der Entwicklungsumgebung am 30.09.2026:
| Messwert | Ergebnis |
|---|---|
| Objekte | 5.000 |
| XLSX-Datei | 191.019 Bytes |
| Erstimport-Command | 15.598.253 Bytes |
| logischer Projektsnapshot | 15.598.071 Bytes |
| XLSX-Erstplanung | 6.831 ms |
| atomare Erstimporttransaktion | 672 ms |
| XLSX-Folgeplanung | 6.303 ms |
| atomare Folgeimporttransaktion | 887 ms |
| Clientfilter, Sortierung und Fenster | 37 ms |
| Heap-Zuwachs des erfolgreichen Gesamtlaufs | 154.125.568 Bytes |
Der Heap-Wert ist wegen Garbage Collection und der absichtlich verwendeten In-Memory-Datenbank nicht deterministisch. Wiederholte Auditläufe lagen unter der Testobergrenze von 768 MiB. Das virtuelle Fenster enthält bei 520 px Höhe maximal 22 statt 5.000 Zeilen.
Gefundene und behobene Grenze
Der erste 5.000-Objekte-Lauf scheiterte an einem ungebatchten SQLite-
Mehrfach-Insert. insertManyInBatches begrenzt nun die Insertblöcke für
Erstimport, Folgeimport, Snapshot-Restore und Projektduplikat. Alle Blöcke
bleiben Teil der jeweiligen bestehenden Transaktion; ein Fehler rollt weiterhin
die gesamte Operation zurück.
Die vorhandenen Tests decken außerdem die deutschen Ablehnungen alter CSV-Snapshots und CSV-History, Löschwarnungen, atomare Link-Inversen und den Schutz referenzierter Räume und Verteiler ab.