refactor: consolidate formatting utilities and add testing infrastructure

- Replace 8 duplicate formatCurrency functions with shared utility
- Add comprehensive formatter utilities (currency, date, number, etc.)
- Set up Vitest for unit testing with 38 passing tests
- Set up Playwright for E2E testing
- Consolidate database connection to single source (src/utils/db.ts)
- Add auth middleware helpers to reduce code duplication
- Fix display bug: remove spurious minus sign in recent activity amounts
- Add path aliases for cleaner imports ($utils, $models)
- Add project documentation (CODEMAP.md, REFACTORING_PLAN.md)

Test coverage: 38 unit tests passing
Build: successful with no breaking changes
This commit is contained in:
2025-11-18 15:24:22 +01:00
parent a2df59f11d
commit 8dd1e3852e
58 changed files with 11127 additions and 131 deletions

35
scripts/update-db-imports.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
# Update all files importing from the legacy $lib/db/db to use $utils/db instead
files=(
"/home/alex/.local/src/homepage/src/routes/mario-kart/[id]/+page.server.ts"
"/home/alex/.local/src/homepage/src/routes/mario-kart/+page.server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/sessions/[id]/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/sessions/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/templates/[id]/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/templates/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/exercises/[id]/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/exercises/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/exercises/filters/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/fitness/seed-example/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/[id]/groups/[groupId]/scores/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/[id]/groups/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/[id]/contestants/[contestantId]/dnf/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/[id]/contestants/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/[id]/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/[id]/bracket/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/[id]/bracket/matches/[matchId]/scores/+server.ts"
"/home/alex/.local/src/homepage/src/routes/api/mario-kart/tournaments/+server.ts"
)
for file in "${files[@]}"; do
if [ -f "$file" ]; then
echo "Updating $file"
sed -i "s/from '\$lib\/db\/db'/from '\$utils\/db'/g" "$file"
else
echo "File not found: $file"
fi
done
echo "All files updated!"