Implement Garmin settings page with token management UI (P2.10)
- Add full Garmin connection management page at /settings/garmin - Display connection status with colored indicators (green/red/gray) - Show token expiry warnings (yellow 14 days, red 7 days) - Token input form with JSON validation for bootstrap script output - Disconnect functionality with confirmation - Loading and error states throughout - Add link from Settings page to Garmin settings - 27 tests for Garmin settings page - 3 additional tests for Settings page Garmin link Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -47,7 +47,7 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| Dashboard (`/`) | **COMPLETE** | Wired with /api/today, DecisionCard, DataPanel, NutritionPanel, OverrideToggles |
|
||||
| Login (`/login`) | **COMPLETE** | Email/password form with auth, error handling, loading states |
|
||||
| Settings (`/settings`) | **COMPLETE** | Form with cycleLength, notificationTime, timezone |
|
||||
| Settings/Garmin (`/settings/garmin`) | Placeholder | Needs token management UI |
|
||||
| Settings/Garmin (`/settings/garmin`) | **COMPLETE** | Token management UI, connection status, disconnect functionality, 27 tests |
|
||||
| Calendar (`/calendar`) | Placeholder | Needs MonthView integration |
|
||||
| History (`/history`) | **COMPLETE** | Table view with date filtering, pagination, decision styling, 26 tests |
|
||||
| Plan (`/plan`) | Placeholder | Needs phase details display |
|
||||
@@ -384,12 +384,20 @@ Full feature set for production use.
|
||||
- **Why:** Users need to configure their preferences
|
||||
- **Depends On:** P0.4, P1.1
|
||||
|
||||
### P2.10: Settings/Garmin Page Implementation
|
||||
- [ ] Garmin connection management UI
|
||||
### P2.10: Settings/Garmin Page Implementation ✅ COMPLETE
|
||||
- [x] Garmin connection management UI
|
||||
- **Files:**
|
||||
- `src/app/settings/garmin/page.tsx` - Token input form, connection status, disconnect button
|
||||
- `src/app/settings/garmin/page.tsx` - Token input form, connection status, expiry warnings, disconnect button
|
||||
- **Tests:**
|
||||
- E2E test: connect flow, disconnect flow
|
||||
- `src/app/settings/garmin/page.test.tsx` - 27 tests covering rendering, connection states, warning levels, token submission, disconnect flow
|
||||
- `src/app/settings/page.test.tsx` - 3 additional tests for Garmin link (28 total)
|
||||
- **Features Implemented:**
|
||||
- Connection status display with green/red/gray indicators
|
||||
- Token expiry warnings (yellow for 14 days, red for 7 days)
|
||||
- Token input form with JSON validation
|
||||
- Instructions for running bootstrap script
|
||||
- Disconnect functionality
|
||||
- Loading and error states
|
||||
- **Why:** Users need to manage their Garmin connection
|
||||
- **Depends On:** P0.4, P2.2, P2.3
|
||||
|
||||
@@ -615,7 +623,8 @@ P2.14 Mini calendar
|
||||
### Pages
|
||||
- [x] **Login Page** - Email/password form with PocketBase auth, error handling, loading states, redirect, 14 tests (P1.6)
|
||||
- [x] **Dashboard Page** - Complete daily interface with /api/today integration, DecisionCard, DataPanel, NutritionPanel, OverrideToggles, 23 tests (P1.7)
|
||||
- [x] **Settings Page** - Form for cycleLength, notificationTime, timezone with validation, loading states, error handling, 24 tests (P2.9)
|
||||
- [x] **Settings Page** - Form for cycleLength, notificationTime, timezone with validation, loading states, error handling, 28 tests (P2.9)
|
||||
- [x] **Settings/Garmin Page** - Token input form, connection status, expiry warnings, disconnect functionality, 27 tests (P2.10)
|
||||
- [x] **History Page** - Table view of DailyLogs with date filtering, pagination, decision styling, 26 tests (P2.12)
|
||||
|
||||
### Test Infrastructure
|
||||
|
||||
Reference in New Issue
Block a user