Implement Login page with PocketBase auth (P1.6)
Add functional login page with email/password form: - Client component with controlled form inputs - PocketBase authentication integration - Error handling with visual feedback - Loading states (disabled inputs, button text change) - Form validation (prevents empty submissions) - Redirect to dashboard on successful login Test infrastructure improvements: - Add @testing-library/jest-dom for DOM matchers - Add global test setup with cleanup between tests - Configure vitest.config.ts with setupFiles 14 new tests covering form rendering, auth flow, error handling, and validation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,11 +40,11 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| POST /api/cron/garmin-sync | 501 | Has CRON_SECRET auth check, core logic TODO |
|
||||
| POST /api/cron/notifications | 501 | Has CRON_SECRET auth check, core logic TODO |
|
||||
|
||||
### Pages (7 total, ALL placeholders)
|
||||
### Pages (7 total)
|
||||
| Page | Status | Notes |
|
||||
|------|--------|-------|
|
||||
| Dashboard (`/`) | Placeholder | Needs real data integration |
|
||||
| Login (`/login`) | Placeholder | Needs PocketBase auth integration |
|
||||
| Login (`/login`) | **COMPLETE** | Email/password form with auth, error handling, loading states |
|
||||
| Settings (`/settings`) | Placeholder | Needs form implementation |
|
||||
| Settings/Garmin (`/settings/garmin`) | Placeholder | Needs token management UI |
|
||||
| Calendar (`/calendar`) | Placeholder | Needs MonthView integration |
|
||||
@@ -75,6 +75,7 @@ This file is maintained by Ralph. Run `./ralph-sandbox.sh plan 3` to generate ta
|
||||
| `src/app/api/cycle/current/route.test.ts` | **EXISTS** - 10 tests (GET current cycle, auth, all phases, rollover, custom lengths) |
|
||||
| `src/app/api/today/route.test.ts` | **EXISTS** - 22 tests (daily snapshot, auth, decision, overrides, phases, nutrition, biometrics) |
|
||||
| `src/app/api/overrides/route.test.ts` | **EXISTS** - 14 tests (POST/DELETE overrides, auth, validation, type checks) |
|
||||
| `src/app/login/page.test.tsx` | **EXISTS** - 14 tests (form rendering, auth flow, error handling, validation) |
|
||||
| `src/lib/nutrition.test.ts` | **MISSING** |
|
||||
| `src/lib/email.test.ts` | **MISSING** |
|
||||
| `src/lib/ics.test.ts` | **MISSING** |
|
||||
@@ -210,12 +211,15 @@ Minimum viable product - app can be used for daily decisions.
|
||||
- **Why:** Emergency overrides are critical for flare days
|
||||
- **Depends On:** P0.1, P0.2, P0.3
|
||||
|
||||
### P1.6: Login Page Implementation
|
||||
- [ ] Functional login form with PocketBase auth
|
||||
### P1.6: Login Page Implementation ✅ COMPLETE
|
||||
- [x] Functional login form with PocketBase auth
|
||||
- **Files:**
|
||||
- `src/app/login/page.tsx` - Form with email/password, error handling, redirect
|
||||
- `src/app/login/page.tsx` - Client component with email/password form, error handling, loading states, redirect
|
||||
- **Tests:**
|
||||
- E2E test: valid login redirects to dashboard, invalid shows error
|
||||
- `src/app/login/page.test.tsx` - 14 tests covering rendering, form submission, auth flow, error handling, validation
|
||||
- **Infrastructure Added:**
|
||||
- `src/test-setup.ts` - Global test setup with @testing-library/jest-dom and cleanup
|
||||
- Updated `vitest.config.ts` to include setupFiles
|
||||
- **Why:** Users need to authenticate to use the app
|
||||
- **Depends On:** P0.1
|
||||
|
||||
@@ -507,6 +511,12 @@ P2.14 Mini calendar
|
||||
- [x] **POST /api/overrides** - Adds override to user.activeOverrides array, 14 tests (P1.5)
|
||||
- [x] **DELETE /api/overrides** - Removes override from user.activeOverrides array, 14 tests (P1.5)
|
||||
|
||||
### Pages
|
||||
- [x] **Login Page** - Email/password form with PocketBase auth, error handling, loading states, redirect, 14 tests (P1.6)
|
||||
|
||||
### Test Infrastructure
|
||||
- [x] **test-setup.ts** - Global test setup with @testing-library/jest-dom matchers and cleanup
|
||||
|
||||
---
|
||||
|
||||
## Discovered Issues
|
||||
|
||||
Reference in New Issue
Block a user