|
All checks were successful
PR Check — Frontend / frontend (pull_request) Successful in 1m46s
Review finding on #330, two defects with one root cause. Desjardins' fingerprint is date/description/montant/solde — four labels any Canadian bank could emit — and MIN_SIGNATURE_LABELS = 4 did not deliver the property it promised, because matching was by SUBSET. Any Date;Description;Montant;Solde file was announced 'Format Desjardins reconnu'. A variant built only from generic labels must now describe the header exactly; one carrying a discriminating label (chequenumber, categorie, memo) keeps subset matching, so extra columns stay fine once something identifies the bank. Worse, a matched signature's single amount column short-circuited the sparse-complementary scan instead of being arbitrated against it. A Date;Description;Debit;Credit;Montant;Solde file reads correctly as debit/credit before #330 and became one unsigned column after, importing every deposit as an expense. The scan now runs first; a signature's amount column only wins when the pair contains it — which is what RBC's genuine Cheque Number / CAD$ case needs, and it still passes. Refs #330 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| amountParser.test.ts | ||
| amountParser.ts | ||
| bankSignatures.test.ts | ||
| bankSignatures.ts | ||
| chartPatterns.tsx | ||
| collapsibleRows.test.ts | ||
| collapsibleRows.ts | ||
| csvAutoDetect.test.ts | ||
| csvAutoDetect.ts | ||
| dateParser.ts | ||
| dateRange.test.ts | ||
| dateRange.ts | ||
| headerDictionary.test.ts | ||
| headerDictionary.ts | ||
| importFormat.test.ts | ||
| importFormat.ts | ||
| referencePeriod.test.ts | ||
| referencePeriod.ts | ||
| renderCategoryLabel.test.ts | ||
| renderCategoryLabel.ts | ||
| reorderRows.ts | ||
| sqlFilters.test.ts | ||
| sqlFilters.ts | ||