[Phase 5] Tests unitaires pour fractal-ai #316

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

Contexte

La spec section 9.1 stipule : "tests unitaires pour chaque crate". Le crate fractal-ai n'a pas de fichier tests.rs ni de modules #[cfg(test)]. Or c'est le crate le plus complexe du projet (détection d'agents, streaming, multi-agent, canvas, traduction, TTS).

Critères d'acceptation

  • crates/fractal-ai/src/detector.rs — tests pour AgentDetector::is_agent() avec différents patterns
  • crates/fractal-ai/src/streaming.rs — tests pour StreamingMessageTracker::on_edit() (< 30s / > 30s / complet)
  • crates/fractal-ai/src/routing.rs — tests pour le routing par mention vs thread
  • crates/fractal-ai/src/translation.rs — tests du cache SQLite (hit/miss/expiry)
  • crates/fractal-ai/src/summary.rs — tests du SummaryEngine avec mock
  • crates/fractal-ai/src/snippet.rs — tests pour l'interpolation de variables {{nom}}
  • crates/fractal-ai/src/scheduled.rs — tests pour la sérialisation/désérialisation des messages programmés
  • cargo test -p fractal-ai passe en CI

Notes techniques

  • Utiliser des mocks pour le matrix_sdk::Client (ne pas tester le réseau)
  • S'inspirer de crates/fractal-stt/src/tests.rs comme modèle de structure
  • Les tests de StreamAction sont prioritaires car la logique de timing est critique
## Contexte La spec section 9.1 stipule : "tests unitaires pour chaque crate". Le crate `fractal-ai` n'a pas de fichier `tests.rs` ni de modules `#[cfg(test)]`. Or c'est le crate le plus complexe du projet (détection d'agents, streaming, multi-agent, canvas, traduction, TTS). ## Critères d'acceptation - [ ] `crates/fractal-ai/src/detector.rs` — tests pour `AgentDetector::is_agent()` avec différents patterns - [ ] `crates/fractal-ai/src/streaming.rs` — tests pour `StreamingMessageTracker::on_edit()` (< 30s / > 30s / complet) - [ ] `crates/fractal-ai/src/routing.rs` — tests pour le routing par mention vs thread - [ ] `crates/fractal-ai/src/translation.rs` — tests du cache SQLite (hit/miss/expiry) - [ ] `crates/fractal-ai/src/summary.rs` — tests du `SummaryEngine` avec mock - [ ] `crates/fractal-ai/src/snippet.rs` — tests pour l'interpolation de variables `{{nom}}` - [ ] `crates/fractal-ai/src/scheduled.rs` — tests pour la sérialisation/désérialisation des messages programmés - [ ] `cargo test -p fractal-ai` passe en CI ## Notes techniques - Utiliser des mocks pour le `matrix_sdk::Client` (ne pas tester le réseau) - S'inspirer de `crates/fractal-stt/src/tests.rs` comme modèle de structure - Les tests de `StreamAction` sont prioritaires car la logique de timing est critique
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#316
No description provided.