Refonte seed catégories IPC — Tests complets (unitaires + intégration + régression + QA) #123

Closed
opened 2026-04-19 15:08:44 +00:00 by maximus · 0 comments
Owner

Refs: spec-decisions-refonte-seed-categories-ipc.md + spec-plan-refonte-seed-categories-ipc.md

Couverture de tests complète pour la refonte seed — feature destructive sur données utilisateur, scope test complet justifié.

Tâches

Tests unitaires

  • categoryMappingService.computeMigrationPlan() : chaque règle de mapping v2→v1 retourne le bon badge et la bonne cible
  • Algo 4 passes : Pass 1 (keyword), Pass 2 (supplier), Pass 3 (fallback), Pass 4 (flag à réviser)
  • Détection des catégories custom (absentes du seed v2) → bucket preserved
  • Détection des splits (Transport commun → Bus OR Train)
  • categoryBackupService.createPreMigrationBackup() avec mocks Tauri : succès normal, échec write, échec integrity check, profil avec PIN

Tests d intégration

  • Flow complet plan → backup → migrate → verify sur profil fixture v2 réaliste
  • Flow rollback après migration : import SREF restaure l état v2 exact
  • Échec backup → abort → aucune écriture BDD (profil v2 intact)
  • Échec migration SQL → ROLLBACK → profil v2 intact, backup reste disponible

Tests de régression

Fixtures paramétrées v2 ET v1 pour couvrir :

  • Auto-catégorisation (categorizationService.applyKeywordToTransaction)
  • Budgets mensuels et agrégation parent/enfant (budgetService.getBudgetVsActual)
  • Splits de transactions sur catégories multiples
  • Import CSV avec matching supplier/keyword
  • Export/Import SREF (pas de régression sur le format)
  • UI : CategoryTree et CategoryCombobox rendent correctement v2 et v1

QA manuelle

  • Créer docs/qa-refonte-seed-categories-ipc.md : checklist couvrant les 3 étapes UI, cas nominal/échec/rollback, profil v2 avec/sans catégories custom

Dépendances

Depends on #115, Depends on #116, Depends on #119, Depends on #120, Depends on #121

Refs: spec-decisions-refonte-seed-categories-ipc.md + spec-plan-refonte-seed-categories-ipc.md Couverture de tests complète pour la refonte seed — feature destructive sur données utilisateur, scope test complet justifié. ## Tâches ### Tests unitaires - [ ] `categoryMappingService.computeMigrationPlan()` : chaque règle de mapping v2→v1 retourne le bon badge et la bonne cible - [ ] Algo 4 passes : Pass 1 (keyword), Pass 2 (supplier), Pass 3 (fallback), Pass 4 (flag à réviser) - [ ] Détection des catégories custom (absentes du seed v2) → bucket preserved - [ ] Détection des splits (Transport commun → Bus OR Train) - [ ] `categoryBackupService.createPreMigrationBackup()` avec mocks Tauri : succès normal, échec write, échec integrity check, profil avec PIN ### Tests d intégration - [ ] Flow complet plan → backup → migrate → verify sur profil fixture v2 réaliste - [ ] Flow rollback après migration : import SREF restaure l état v2 exact - [ ] Échec backup → abort → aucune écriture BDD (profil v2 intact) - [ ] Échec migration SQL → ROLLBACK → profil v2 intact, backup reste disponible ### Tests de régression Fixtures paramétrées v2 ET v1 pour couvrir : - [ ] Auto-catégorisation (`categorizationService.applyKeywordToTransaction`) - [ ] Budgets mensuels et agrégation parent/enfant (`budgetService.getBudgetVsActual`) - [ ] Splits de transactions sur catégories multiples - [ ] Import CSV avec matching supplier/keyword - [ ] Export/Import SREF (pas de régression sur le format) - [ ] UI : `CategoryTree` et `CategoryCombobox` rendent correctement v2 et v1 ### QA manuelle - [ ] Créer `docs/qa-refonte-seed-categories-ipc.md` : checklist couvrant les 3 étapes UI, cas nominal/échec/rollback, profil v2 avec/sans catégories custom ## Dépendances Depends on #115, Depends on #116, Depends on #119, Depends on #120, Depends on #121
maximus added this to the spec-refonte-seed-categories-ipc milestone 2026-04-19 15:08:44 +00:00
maximus added the
status:ready
type:feature
source:human
labels 2026-04-19 15:08:44 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-04-21 01:52:15 +00:00
maximus added
status:approved
and removed
status:in-progress
labels 2026-04-21 23:26:44 +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#123
No description provided.