test: corpus de fixtures CSV et contrat de detection #326
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#326
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs:
spec-decisions-import-csv-format.md+spec-plan-import-csv-format.md(racine du repo).Contexte
src/utils/csvAutoDetect.test.tsne couvre que le flux holdings (#245).autoDetectConfig,detectAmountMode,detectSingleAmount,preprocessQuotedCSVet l'integralite deuseImportWizardn'ont aucun test, sur les 871 que compte le projet — alors que c'est le coeur historique de la reconnaissance de format.Cette issue vient avant la refonte de la detection, deliberement : elle fige le comportement actuel comme contrat, pour que les issues suivantes se mesurent a quelque chose d'etabli plutot qu'a une intention.
Taches
src/test/fixtures/csv/, un fichier par cas :montant signe ; debit/credit ; debit/credit en ordre inverse (
Date;Description;Credit;Debit) ; colonne inutilisee a0,00; preambule avant l'en-tete ; en-tete contenant un nombre (« Solde 2024 ») ; sans ligne d'en-tete ; tout-positif ; ligne entiere entre guillemets (style Desjardins)autoDetectConfig: delimiteur, en-tete, lignes ignorees, format de date, mode, convention, mappingPoints d'attention
Fixtures synthetiques : aucune donnee reelle au depot. Elles couvrent des cas qu'un vrai releve ne contient pas, ce qui est precisement l'interet.
Criteres d'acceptation
Revision /review-spec — 2026-08-13
Corrections a appliquer, issues de la revue 3 experts :
parseFrenchAmount— dont dependentdetectHeader,detectSingleAmount,pickBestAmountColumnetisSparseComplementary. Le corpus cense figer le comportement « avant la refonte » aurait enregistre un comportement deja modifie.src/__fixtures__/csv/, passrc/test/fixtures/csv/—src/test/n'existe pas. Les tests sont colocalises (src/utils/*.test.ts), les fixtures vivent danssrc/__fixtures__/et l'integration danssrc/__integration__/.Premier maillon — aucune dependance.
Fichiers concernes
src/__fixtures__/csv/— creer : corpus synthetique (PASsrc/test/, qui n'existe pas)src/utils/csvAutoDetect.test.ts— tests de contrat du flux transactionssrc/utils/amountParser.test.ts— creerDecisions prises en planification
formatToRow/formatFromRowetmapRowvivent danssrc/utils/importFormat.ts— meme dossier queamountParser,dateParseretcsvAutoDetect, qui portent deja la logique pure du domaine. Les types restent danssrc/shared/types/.deleteImportWithTransactionspuis re-import. Ne jamais muter des montants deja ecrits.spec-decisions-import-csv-format.mdetspec-plan-import-csv-format.mdsont committees a la racine (force-add, precedent PR #295) : elles sont lisibles depuis un worktree.Spec source
spec-plan-import-csv-format.md+spec-decisions-import-csv-format.md(racine du repo, committees).maximus referenced this issue2026-08-12 20:14:33 +00:00