31
PWA — Installability & Push Notifications (v8.0)
UAT-31.1
Web App Manifest
MediumSteps
- Open Chrome DevTools → Application → Manifest
Verify (5 checks)
- Manifest loaded with name "Fovea"
- Icons array includes 192px and 512px sizes
- Display mode is standalone
- Theme color is purple (#6d28d9 or similar)
- Start URL is /
| Score | Tester | Date | Notes |
|---|---|---|---|
| ___ | ___ | ___ | ___ |
UAT-31.2
Service Worker Registration
MediumSteps
- Open Chrome DevTools → Application → Service Workers
Verify (2 checks)
- sw.js registered and shows "activated and is running"
- No registration errors in console
| Score | Tester | Date | Notes |
|---|---|---|---|
| ___ | ___ | ___ | ___ |
UAT-31.3
Offline Fallback
MediumSteps
- Open DevTools → Network → set to Offline
- Navigate to any page
Verify (3 checks)
- Branded offline page shown (not browser default)
- Page has purple gradient and retry button
- No unhandled promise rejection errors in console
| Score | Tester | Date | Notes |
|---|---|---|---|
| ___ | ___ | ___ | ___ |
UAT-31.4
Install Prompt
MediumSteps
- Open Fovea in Chrome
- Wait for install banner at bottom of page
- Click X to dismiss
Verify (4 checks)
- Install banner appears with "Install Fovea" text
- Clicking Install shows native install dialog
- Dismissing stores preference in localStorage
- Banner does not reappear after dismissal
| Score | Tester | Date | Notes |
|---|---|---|---|
| ___ | ___ | ___ | ___ |
UAT-31.5
Push Notification Subscription
MediumSteps
- Login as authenticated user
- Check DevTools → Application → Push Messaging
Verify (4 checks)
- Push subscription created on login
- /api/push/subscribe called successfully (200 response)
- PushSubscription record created in database
- Browser prompt for notification permission shown
| Score | Tester | Date | Notes |
|---|---|---|---|
| ___ | ___ | ___ | ___ |