- Identified target widgets/charts in
components/Dashboard/*andcomponents/Insights/* - Checked widget empty/error state components (
components/ui/WidgetEmptyState.tsx,WidgetErrorState.tsx) - Checked provider dependency (
lib/context/DensityContext.tsxthrows if missing)
- Extend Vitest config for jsdom+RTL tests (new test include glob)
- Add global RTL setup with jsdom + @testing-library/jest-dom
- Add small
renderWithProvidershelper (DensityProvider, etc.)
- MoneyDistributionWidget: mounts + empty/error state
- SixMonthTrendsWidget: mounts + empty/error state (if supported; otherwise mount only)
- RecentTransactionsWidget: mounts + empty/error state (DensityProvider required)
- SavingsByGoalWidget: mounts + empty/error state
- QuickActions: mounts only (no widget empty/error)
- Insights charts: include RemittanceTrendChart, CategoryDonutChart, SpendingVsSavingChart + mount assertions
- Use
assert.doesNotThrowpattern per requirement
- Run
npm run test:coverage - Run
npx tsc --noEmit - Run
npm run lint