Bilan #6 — Tests dintégration cross-cutting #144

Closed
opened 2026-04-25 16:09:11 +00:00 by maximus · 1 comment
Owner

Refs: spec-decisions-bilan.md + spec-plan-bilan.md (v2 + overnight-2026-04-26)

Depends on #142 (peut démarrer dès #142 mergée — PAS de dépendance sur #143 désormais)

Note : les tests unitaires de chaque feature sont co-localisés dans leurs issues respectives (TDD-style, voir #138/#146/#140/#141/#142/#143). Cette issue couvre uniquement les tests dintégration cross-cutting.

Tâches

  • Tests vitest end-to-end (mock Tauri) du flux complet :
    • Créer compte → créer catégorie priced → créer snapshot priced → lier transfert → calculer rendement → vérifier valeurs cohérentes
  • Test currency lock :
    • Tentative de créer un compte avec currency = USD → service refuse (CHECK SQL + service validation)
    • Vérifier message derreur clair côté UI
  • Tests Rust dintégration migration sur DB existante seedée :
    • Appliquer la migration v9 sur une DB avec transactions seedées
    • Vérifier quaucune transaction existante ne casse
    • Vérifier quon peut lier un transfert et le délier
  • Vérification non-régression TransactionsPage :
    • Sans transferts liés, page affiche exactement comme avant linlining de TransactionTransferIcon
  • Coverage globale : viser 80% sur return_calculator.rs (déjà en TDD #142), 70% sur balance.service.ts
  • Entrée CHANGELOG (test infrastructure)

Décisions prises ce soir

  • Multi-devises bloquées au MVP (au lieu de "filtre OU avertissement") : test de currency lock remplace lancien test "devises mixtes".
  • Issue 6 ne dépend plus de #143 (décision plan v2 post-review).

Critères dacceptation

  • Tous les tests dintégration passent (cargo test + npm test)
  • Coverage cible atteinte
  • Aucune régression sur la page transactions existante
  • Test currency lock confirme refus sur currency != CAD
Refs: spec-decisions-bilan.md + spec-plan-bilan.md (v2 + overnight-2026-04-26) Depends on #142 (peut démarrer dès #142 mergée — **PAS de dépendance sur #143** désormais) > Note : les tests unitaires de chaque feature sont co-localisés dans leurs issues respectives (TDD-style, voir #138/#146/#140/#141/#142/#143). Cette issue couvre uniquement les tests dintégration cross-cutting. ## Tâches - [ ] Tests vitest end-to-end (mock Tauri) du flux complet : - Créer compte → créer catégorie priced → créer snapshot priced → lier transfert → calculer rendement → vérifier valeurs cohérentes - [ ] Test currency lock : - Tentative de créer un compte avec currency = USD → service refuse (CHECK SQL + service validation) - Vérifier message derreur clair côté UI - [ ] Tests Rust dintégration migration sur DB existante seedée : - Appliquer la migration v9 sur une DB avec transactions seedées - Vérifier quaucune transaction existante ne casse - Vérifier quon peut lier un transfert et le délier - [ ] Vérification non-régression TransactionsPage : - Sans transferts liés, page affiche exactement comme avant linlining de TransactionTransferIcon - [ ] Coverage globale : viser 80% sur return_calculator.rs (déjà en TDD #142), 70% sur balance.service.ts - [ ] Entrée CHANGELOG (test infrastructure) ## Décisions prises ce soir - Multi-devises bloquées au MVP (au lieu de "filtre OU avertissement") : test de currency lock remplace lancien test "devises mixtes". - Issue 6 ne dépend plus de #143 (décision plan v2 post-review). ## Critères dacceptation - Tous les tests dintégration passent (cargo test + npm test) - Coverage cible atteinte - Aucune régression sur la page transactions existante - Test currency lock confirme refus sur currency != CAD
maximus added this to the spec-price-fetching milestone 2026-04-25 16:09:11 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-04-25 16:09:11 +00:00
Author
Owner

/review-spec — restructurer cette issue

🟡 Issue 6 dépend d'Issue 5 (bloquée externe) — crée un blocage CI artificiel

Issue 5 (price-fetching) dépend de maximus-api Phase 2 dans un repo externe. Si on garde la dépendance actuelle, les tests des Issues 1-4 ne peuvent ship tant qu'un repo externe n'est pas done — viole le gate CI du projet (check.yml exige tests verts).

🟡 Tests Modified Dietz reportés trop tard

Modified Dietz est la pièce financière la plus à risque, construite dans #142. Reporter ses tests ici = risque de ship #142 sans tests si #143 (Issue 5) reste bloquée.

Fix combiné : splitter cette issue

  • Issue 6a — Tests pour Issues 1-4 : dépend uniquement de #142. Inclut tests Rust return_calculator.rs, tests migration (FK/UNIQUE/CHECK), tests vitest balance.service.ts, tests agrégateur série temporelle.
  • Issue 6b — Tests pour Issue 5 : dépend de #143. Inclut tests vitest priceFetcher.service.ts avec mock du proxy (succès, 401/404/429/network), test privacy headers (cf finding sécurité dans #143).

Alternative recommandée : déplacer les tests Rust de Modified Dietz directement dans #142 (TDD-style), garder cette issue uniquement pour les tests cross-cutting.

## /review-spec — restructurer cette issue ### 🟡 Issue 6 dépend d'Issue 5 (bloquée externe) — crée un blocage CI artificiel Issue 5 (price-fetching) dépend de maximus-api Phase 2 dans un repo externe. Si on garde la dépendance actuelle, les tests des Issues 1-4 ne peuvent ship tant qu'un repo externe n'est pas done — viole le gate CI du projet (check.yml exige tests verts). ### 🟡 Tests Modified Dietz reportés trop tard Modified Dietz est la pièce financière la plus à risque, construite dans #142. Reporter ses tests ici = risque de ship #142 sans tests si #143 (Issue 5) reste bloquée. ### Fix combiné : splitter cette issue - **Issue 6a — Tests pour Issues 1-4** : dépend uniquement de #142. Inclut tests Rust `return_calculator.rs`, tests migration (FK/UNIQUE/CHECK), tests vitest `balance.service.ts`, tests agrégateur série temporelle. - **Issue 6b — Tests pour Issue 5** : dépend de #143. Inclut tests vitest `priceFetcher.service.ts` avec mock du proxy (succès, 401/404/429/network), test privacy headers (cf finding sécurité dans #143). Alternative recommandée : déplacer les tests Rust de Modified Dietz directement dans #142 (TDD-style), garder cette issue uniquement pour les tests cross-cutting.
maximus changed title from Bilan #6 — Tests unitaires + intégration ciblés to Bilan #6 — Tests dintégration cross-cutting 2026-04-25 18:08:40 +00:00
maximus modified the milestone from spec-price-fetching to overnight-2026-04-26-bilan 2026-04-25 18:18:58 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-04-25 20:47:35 +00:00
maximus removed the
status:in-progress
label 2026-04-25 20:55:01 +00:00
Sign in to join this conversation.
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: maximus/Simpl-Resultat#144
No description provided.