whisper-money/tests
Víctor Falcón 832cd1245b feat(cashflow): add multi-level donut money-flow chart (prototype)
Replace the hand-rolled SVG Sankey on the Cashflow page with a
concentric multi-level donut (recharts), aimed at working on both
desktop and mobile where the Sankey was wide and hard to use.

- Backend: `sankey?nested=1` returns the full nested Income/Expense
  tree (up to MAX_DEPTH) via a new `CategoryTree::nest()`, strictly by
  category type so its totals match the summary and breakdown cards
  (savings, investments and transfers excluded). A synthetic "Direct"
  child keeps each node's children summing to the node total.
- Frontend: `MultiLevelDonut` renders concentric rings — income grows
  toward the centre, expense toward the rim — with a `showIncome` prop
  exposed as a Combined / Expenses-only toggle for comparison. Inside
  labels on the innermost ring; leader-line labels (name + share) on the
  outermost ring with per-side vertical collision avoidance on wide
  screens, suppressed below 480px where the outer ring is read on tap.
- Pure ring-building logic lives in `lib/donut-utils` with unit tests;
  the nested endpoint has a feature test.

Prototype for comparing the Combined vs Expenses-only layouts before
picking a final direction; the old SankeyChart component is kept but no
longer rendered on this page.
2026-07-11 19:16:45 +02:00
..
.pest Speed up PR CI browser path (#365) 2026-05-07 20:40:13 +01:00
Browser feat(onboarding): auto-enable AI for connected banks, ask the rest (#618) 2026-07-01 07:26:52 +00:00
Feature feat(cashflow): add multi-level donut money-flow chart (prototype) 2026-07-11 19:16:45 +02:00
Fixtures refactor: consolidate duplicated financial calculations (#643) 2026-07-04 22:26:44 +02:00
Performance feat(transactions): make new-transaction marker cross-device (#611) 2026-06-29 19:11:37 +02:00
Support test(open-banking): e2e coverage for Enable Banking connection flows (#509) 2026-06-09 11:58:50 +02:00
Unit refactor: consolidate duplicated financial calculations (#643) 2026-07-04 22:26:44 +02:00
Pest.php chore: harden Inertia boundary, CI type-check, and test isolation (#640) 2026-07-04 18:57:58 +00:00
TestCase.php Remove encryption from browser tests and demo user (#129) 2026-02-17 11:45:27 +01:00
bootstrap.php chore: upgrade Laravel 12 to 13 (#242) 2026-03-25 12:56:33 +00:00