added mermaid and a lot of cmap changes

This commit is contained in:
2026-08-27 13:13:39 +02:00
parent 20c1584016
commit 2215d1d04a
35 changed files with 6442 additions and 350 deletions
+19
View File
@@ -6,6 +6,10 @@ De backendfuncties zijn meestal procedureel en krijgen `config` expliciet mee. D
Versie 0.2.93 introduceert wel tests in `architecture/import.rkt`. Die controleren de manifestset, interne paginalinks, CMap-embeds, unieke node-id's, connector-endpoints en de bronmarkeringen waarmee lokaal gewijzigde importinhoud wordt beschermd. Dit is een begin, geen voldoende dekking van de wiki.
Versie 0.2.100 voegt pure Node-tests toe voor de Markdown-export: dieptebegrenzing, cycli, optionele wikipagina's, persoonstags, leesbare relaties en afgeleide sub-CMapweergaven. De extractie van persoonsnamen uit CMap-documenten heeft daarnaast een kleine RackUnit-test; database- en browsergedrag blijven integratietestwerk.
Versie 0.2.115 voegt pure roundtrip- en validatietests toe voor het JSON-uitwisselingsformaat. Zij controleren dat coördinaten, afmetingen, kleuren, typografie, groepering en connectoren in de diagramlaag blijven, dat gedeelde conceptinhoud apart wordt opgeslagen en bij import wordt teruggekoppeld, en dat losse concepten, dubbele namen/slugs en ongeldige connector-endpoints worden geweigerd.
## Testpiramide voor racket-wiki
| Laag | Doel | Voorbeelden |
@@ -47,6 +51,21 @@ Introduceer geen groot mockframework. Gewone procedures en expliciete parameters
Voor frontendcode zijn browsercomponenttests met een echte DOM geschikter dan het namaken van ieder element. De CMap-adapter moet met een klein vast document getest kunnen worden zonder de hele wiki te starten.
De JavaScript-regressietest `test/cmap-connector-rewire.test.js` simuleert het verslepen van een
connector naar een andere verbindingszin, klapt de submap in en uit en controleert daarna zowel de
tekenlaag als de geserialiseerde `sourceId`.
`test/cmap-submap-navigation.test.js` opent twee geneste afzonderlijke sub-CMaps en bewijst dat één
terugactie alleen het diepste niveau verlaat en de tussenliggende kaart actief houdt.
`test/cmap-selection-layout.test.js` controleert dat het laatst geselecteerde referentieconcept de
doelmaat en uitlijning bepaalt, naast horizontale en verticale verdeling, documentserialisatie en
opname van layoutcommando's in Undo.
`test/cmap-layering.test.js` rendert concepten en een kruisende relatie in een kleine test-DOM. De
test bewijst dat de relatie ook na `toFront()` een lagere z-index houdt en dat de hit-test op het
kruispunt het concept selecteert in plaats van de verborgen relatie.
## Contract- en structuurcontroles
Naast functionele tests hoort de releasecontrole automatisch te verifiëren: