[Phase 5] Tests unitaires pour fractal-bridge #318

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

Contexte

La spec section 9.1 stipule : "tests unitaires pour chaque crate". Le crate fractal-bridge n'a pas de fichier tests.rs. La détection de puppet users et le scoring de similarité sont des algorithmes déterministes qui se prêtent parfaitement aux tests unitaires.

Critères d'acceptation

  • crates/fractal-bridge/src/bridge_type.rs — tests de BridgeType::detect() avec des user IDs typiques (@telegram_12345:bridge.server, @whatsapp_..., etc.)
  • crates/fractal-bridge/src/bridge_type.rs — test que BridgeType::detect() retourne None pour un user ID Matrix normal
  • crates/fractal-bridge/src/similarity.rs — tests de similarity_score() : noms identiques, noms similaires, même numéro de téléphone, bridges différents
  • crates/fractal-bridge/src/similarity.rs — test que le score est 0.0 quand les deux identités ont le même bridge type
  • crates/fractal-bridge/src/fusion.rs — tests de la fusion de contacts : ajout, suppression d'identité, canal préféré
  • crates/fractal-bridge/src/timeline.rs — test du merge-sort sur des événements de 2 timelines
  • cargo test -p fractal-bridge passe en CI

Notes techniques

  • BridgeType::detect() est purement fonctionnel (pas d'I/O) — facile à tester
  • Le scoring Levenshtein peut être testé avec des paires connues (distance = 0, 1, N)
  • Les tests de timeline.rs peuvent utiliser des vecteurs d'événements fictifs triés par timestamp
## Contexte La spec section 9.1 stipule : "tests unitaires pour chaque crate". Le crate `fractal-bridge` n'a pas de fichier `tests.rs`. La détection de puppet users et le scoring de similarité sont des algorithmes déterministes qui se prêtent parfaitement aux tests unitaires. ## Critères d'acceptation - [ ] `crates/fractal-bridge/src/bridge_type.rs` — tests de `BridgeType::detect()` avec des user IDs typiques (`@telegram_12345:bridge.server`, `@whatsapp_...`, etc.) - [ ] `crates/fractal-bridge/src/bridge_type.rs` — test que `BridgeType::detect()` retourne `None` pour un user ID Matrix normal - [ ] `crates/fractal-bridge/src/similarity.rs` — tests de `similarity_score()` : noms identiques, noms similaires, même numéro de téléphone, bridges différents - [ ] `crates/fractal-bridge/src/similarity.rs` — test que le score est 0.0 quand les deux identités ont le même bridge type - [ ] `crates/fractal-bridge/src/fusion.rs` — tests de la fusion de contacts : ajout, suppression d'identité, canal préféré - [ ] `crates/fractal-bridge/src/timeline.rs` — test du merge-sort sur des événements de 2 timelines - [ ] `cargo test -p fractal-bridge` passe en CI ## Notes techniques - `BridgeType::detect()` est purement fonctionnel (pas d'I/O) — facile à tester - Le scoring Levenshtein peut être testé avec des paires connues (distance = 0, 1, N) - Les tests de `timeline.rs` peuvent utiliser des vecteurs d'événements fictifs triés par timestamp
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#318
No description provided.