[Phase 5] Tests unitaires pour fractal-rich #317

Open
opened 2026-04-06 09:35:33 +00:00 by charles · 0 comments
Owner

Contexte

La spec section 9.1 stipule : "tests unitaires pour chaque crate". Le crate fractal-rich n'a pas de fichier tests.rs. La logique de parsing HTML→blocs et la validation des schémas JSON sont des zones critiques à couvrir.

Critères d'acceptation

  • crates/fractal-rich/src/parser.rs — tests du parsing HTML avec blocs data-fx-* valides et invalides
  • crates/fractal-rich/src/parser.rs — test du fallback : HTML sans blocs enrichis → MessageFragment::Html uniquement
  • crates/fractal-rich/src/block.rs — tests de désérialisation JSON pour ChartConfig, QuizConfig, CardConfig
  • crates/fractal-rich/src/block.rs — test que les JSON invalides retournent une erreur (pas de panic)
  • crates/fractal-rich/src/editor.rs — tests de l'état de l'éditeur (ajout/suppression de blocs)
  • crates/fractal-rich/src/prefs.rs — tests des transitions de niveau de rendu (Full/Static/Text)
  • cargo test -p fractal-rich passe en CI

Notes techniques

  • Le parser utilise html5ever — les tests peuvent s'appuyer sur des chaînes HTML inline
  • Tester les cas limites : attribut data-fx-config malformé, type inconnu, HTML vide
  • Les tests de ChartConfig valident que les types de graphique enum sont bien sérialisés
## Contexte La spec section 9.1 stipule : "tests unitaires pour chaque crate". Le crate `fractal-rich` n'a pas de fichier `tests.rs`. La logique de parsing HTML→blocs et la validation des schémas JSON sont des zones critiques à couvrir. ## Critères d'acceptation - [ ] `crates/fractal-rich/src/parser.rs` — tests du parsing HTML avec blocs `data-fx-*` valides et invalides - [ ] `crates/fractal-rich/src/parser.rs` — test du fallback : HTML sans blocs enrichis → `MessageFragment::Html` uniquement - [ ] `crates/fractal-rich/src/block.rs` — tests de désérialisation JSON pour `ChartConfig`, `QuizConfig`, `CardConfig` - [ ] `crates/fractal-rich/src/block.rs` — test que les JSON invalides retournent une erreur (pas de panic) - [ ] `crates/fractal-rich/src/editor.rs` — tests de l'état de l'éditeur (ajout/suppression de blocs) - [ ] `crates/fractal-rich/src/prefs.rs` — tests des transitions de niveau de rendu (Full/Static/Text) - [ ] `cargo test -p fractal-rich` passe en CI ## Notes techniques - Le parser utilise `html5ever` — les tests peuvent s'appuyer sur des chaînes HTML inline - Tester les cas limites : attribut `data-fx-config` malformé, type inconnu, HTML vide - Les tests de `ChartConfig` valident que les types de graphique enum sont bien sérialisés
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#317
No description provided.