Commit 2f1c155
committed
feat: implement comprehensive error handling for v0.2.0 features (Task 15)
Extends ErrorHandler module and creates LiveView error display components to provide
consistent, user-friendly error handling across all new v0.2.0 financial management
features including cash balance management, symbol search, category management, net
worth calculation, and Context API operations.
**ErrorHandler Extensions:**
- Added 17 new error categories for v0.2.0 features
- Implemented categorized error patterns for balance management, symbol search,
category management, calculation errors, and Context API failures
- Added severity-based logging with appropriate log levels
- Created user-friendly error messages following UX guidelines
**LiveView Error Display Components:**
- New ErrorDisplay component module with 5 reusable error UI components
- error_message/1: Full error alerts with dismissible and context options
- warning_message/1: Less critical warnings with consistent styling
- inline_error/1: Form field validation errors
- success_message/1: Operation success notifications
- async_error_boundary/1: Loading states with error fallback and retry
**Comprehensive Testing:**
- Extended error_handler_test.exs with 67 new test cases covering all v0.2.0 errors
- Created error_display_test.exs with 16 component tests including accessibility
- Added integration/error_handling_test.exs with 21 real-world error scenario tests
- All tests follow TDD methodology and validate user experience
**Misc:**
- Proper ARIA accessibility attributes for screen readers
- Consistent error messaging tone and actionable guidance
- Hero icon integration following project conventions
This completes Task 15 of the v0.2.0 roadmap, providing production-ready error
handling infrastructure for all new financial management features.
🤖 Generated with [Claude Code](https://claude.ai/code)1 parent a08b14e commit 2f1c155
6 files changed
Lines changed: 1535 additions & 0 deletions
File tree
- docs
- lib
- ashfolio_web/components
- ashfolio
- test
- ashfolio_web/components
- ashfolio
- integration
0 commit comments