--- status: testing phase: 12-initial-setup-wizard source: [12-VERIFICATION.md] started: 2026-06-15T19:22:00Z updated: 2026-06-15T19:22:00Z --- ## Current Test number: 1 name: Complete the setup wizard end-to-end against a real Fastmail account expected: | With the rebuilt API container running and the dev DB unconfigured (no setup_complete, no member_credentials), navigating to http://localhost:5173/ redirects to /setup. The operator advances Welcome → Instance (App URL / OIDC issuer / OIDC client ID / VAPID public key → Save & Validate shows DB, OIDC, and VAPID validation rows all passing against a reachable Authelia) → Calendar (Fastmail email + app password → CalDAV PROPFIND validation succeeds) → Complete. POST /api/setup/complete returns 200 and the "Setup complete" terminal surface renders. awaiting: user response ## Tests ### 1. Complete the setup wizard end-to-end against a real Fastmail account expected: | Redirect-to-/setup gate fires; Instance step's Save & Validate shows DB + OIDC + VAPID rows all green (needs a reachable Authelia + correct VAPID env); Calendar step validates a real Fastmail app password via live CalDAV PROPFIND; POST /api/setup/complete returns 200; "Setup complete" terminal screen appears. result: [pending] ### 2. Step-2 validation rows reflect real backend results expected: | With a reachable Authelia and correct VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY env, the OIDC and VAPID validation rows pass. With a wrong/swapped VAPID key, the VAPID row fails and the Continue button stays disabled (the gap-closure guard — db AND oidc AND vapid). result: [pending] ### 3. Setup endpoints lock once complete (423) expected: | After completing setup, re-navigating to /setup shows the "setup already complete" surface, and POST to any /api/setup/* mutating route returns HTTP 423 Locked. result: [pending] ## Summary total: 3 passed: 0 issues: 0 pending: 3 skipped: 0 blocked: 0 ## Gaps