fix(search,excalidraw,e2e): recherche cassee + corruption .excalidraw.md + tests E2E #78
CI / lint (push) Successful in 54s
CI / security (push) Successful in 38s
CI / test (push) Successful in 1m7s
CI / build (push) Successful in 33s
CI / e2e (push) Failing after 10m52s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
CI / lint (push) Successful in 54s
CI / security (push) Successful in 38s
CI / test (push) Successful in 1m7s
CI / build (push) Successful in 33s
CI / e2e (push) Failing after 10m52s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- frontend/js/search.js : onSearchFilter appelee avec (vault, query, results) — renvoyait undefined, cassait le rendu et basculait sur la recherche offline (0 resultat). Regression plugins depuis 30f2df3.
- frontend/excalidraw-editor.html + js/excalidraw-viewer.js : ignorer onChange au montage (plus d'auto-save spurieux qui reecrivait .excalidraw.md en JSON brut) + preservation du format Obsidian frontmatter + compressed-json a la sauvegarde.
- frontend/js/app.js : __OBSIGATE_BOOTED pose apres init() (splash + E2E attendent les handlers lies).
- tests/e2e : goHome/login attendent le boot ; excalidraw.spec.js reecrit avec les selecteurs reels (modal, context menu, canvas.first()).
- ROADMAP : C8 (creation via menu contextuel) marque fait.
- Verifie : 86/86 E2E chromium-desktop, 599 backend, ruff, validate-imports, JSDOM.
This commit is contained in:
+22
-3
@@ -40,9 +40,28 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
- **#78 Excalidraw — doc utilisateur finalisée** : `.excalidraw` / `.excalidraw.md` ajoutés aux
|
||||
formats supportés (README FR/EN), nouvelle section « Diagrammes Excalidraw » dans le guide
|
||||
intégré (i18n FR/EN) et note de compatibilité avec le plugin Obsidian Excalidraw.
|
||||
- **Roadmap** : #78 marqué terminé (B5 extraction texte, F3 E2E `tests/e2e/excalidraw.spec.js`,
|
||||
H1-H3 docs) ; C8/F2 non retenus. Points optionnels #61 (dépôt communautaire de plugins) et
|
||||
#74 (D2/E4/H2/I2) explicitement marqués non retenus.
|
||||
- **Roadmap** : #78 marqué terminé (B5 extraction texte, C8 menu contextuel, F3 E2E
|
||||
`tests/e2e/excalidraw.spec.js`, H1-H3 docs) ; F2 non retenu. Points optionnels #61
|
||||
(dépôt communautaire de plugins) et #74 (D2/E4/H2/I2) explicitement marqués non retenus.
|
||||
|
||||
### Corrigé
|
||||
|
||||
- **Recherche cassée (régression plugins)** : `onSearchFilter()` était appelée avec 2 arguments
|
||||
au lieu de 3 (`frontend/js/search.js`), renvoyait `undefined`, faisait échouer le rendu des
|
||||
résultats et basculait silencieusement sur la recherche hors-ligne (0 résultat). Corrigé →
|
||||
la recherche full-text et l'autocomplétion refonctionnent (20 tests E2E).
|
||||
- **`.excalidraw.md` corrompu à l'ouverture** : Excalidraw émet `onChange` au montage, ce qui
|
||||
déclenchait un auto-save 2 s plus tard réécrivant le fichier au format JSON brut et détruisant
|
||||
le format plugin Obsidian (`frontend/excalidraw-editor.html` + `frontend/js/excalidraw-viewer.js`).
|
||||
Les changements initiaux sont désormais ignorés et le format `frontmatter + compressed-json`
|
||||
est préservé à la sauvegarde.
|
||||
- **Splash / tests E2E** : `window.__OBSIGATE_BOOTED` était posé avant la fin de `init()` — le
|
||||
splash disparaissait trop tôt et les tests E2E interagissaient avant que les handlers soient
|
||||
liés. Le flag est maintenant posé après résolution de `init()` (`frontend/js/app.js`), et
|
||||
`goHome()`/`login()` attendent ce signal.
|
||||
- **Tests E2E Excalidraw** : réécriture de `tests/e2e/excalidraw.spec.js` avec les sélecteurs
|
||||
réels (modale `.obsigate-modal` + `#file-ext-select`/`#file-name-input`, menu contextuel,
|
||||
`canvas.first()` pour les deux couches canvas).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user