docs(14): add VALIDATION.md — phase is Nyquist-compliant

14 automated tests covering AUTH-UI-01/02/03. 3 manual-only items
(animated CSS, Roboto font render, HTMX browser swap) verified at
human checkpoint on 2026-05-16.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Arthur Belleville 2026-05-16 20:44:04 +02:00
parent dcbc05b642
commit 8a34e5c79a
No known key found for this signature in database

View file

@ -0,0 +1,83 @@
---
phase: 14
slug: auth-pages
status: compliant
nyquist_compliant: true
wave_0_complete: true
created: 2026-05-16
---
# Phase 14 — Validation Strategy
---
## Test Infrastructure
| Property | Value |
|----------|-------|
| **Framework** | Go `testing` (stdlib) |
| **Config file** | `backend/go.mod` |
| **Quick run command** | `cd backend && go test ./templates/... -count=1` |
| **Full suite command** | `cd backend && go test ./... -count=1` |
| **Estimated runtime** | ~5 seconds |
---
## Sampling Rate
- **After every task commit:** `cd backend && go test ./templates/... -count=1`
- **After every plan wave:** `cd backend && go test ./... -count=1`
- **Before `/gsd-verify-work`:** Full suite must be green
---
## Per-Task Verification Map
| Task ID | Plan | Wave | Requirement | Test Type | Automated Command | File | Status |
|---------|------|------|-------------|-----------|-------------------|------|--------|
| 14-01-01 | 01 | 1 | AUTH-UI-01/02/03 | unit | `cd backend && go test ./templates/... -count=1 -run TestLoginPage_RendersAuthLayoutStructure` | `backend/templates/auth_login_test.go` | ✅ green |
| 14-01-02 | 01 | 1 | AUTH-UI-01 | unit | `cd backend && go test ./templates/... -count=1 -run TestLoginPage_HTMXFormAttributes` | `backend/templates/auth_login_test.go` | ✅ green |
| 14-01-03 | 01 | 1 | AUTH-UI-01 | unit | `cd backend && go test ./templates/... -count=1 -run TestLoginPage_DoesNotEchoPassword` | `backend/templates/auth_login_test.go` | ✅ green |
| 14-01-04 | 01 | 1 | AUTH-UI-03 | unit | `cd backend && go test ./templates/... -count=1 -run TestAnimatedBackground_Exactly35Elements` | `backend/templates/auth_components_test.go` | ✅ green |
| 14-01-05 | 01 | 1 | AUTH-UI-03 | unit | `cd backend && go test ./templates/... -count=1 -run TestGoogleButton_ConfiguredRendersLink` | `backend/templates/auth_components_test.go` | ✅ green |
| 14-01-06 | 01 | 1 | AUTH-UI-03 | unit | `cd backend && go test ./templates/... -count=1 -run TestGoogleButton_UnconfiguredRendersDisabledButton` | `backend/templates/auth_components_test.go` | ✅ green |
| 14-01-07 | 01 | 1 | AUTH-UI-03 | unit | `cd backend && go test ./templates/... -count=1 -run TestAuthDivider_RendersOrPill` | `backend/templates/auth_components_test.go` | ✅ green |
| 14-02-01 | 02 | 2 | AUTH-UI-02 | unit | `cd backend && go test ./templates/... -count=1 -run TestSignupPage_RendersForm` | `backend/templates/auth_signup_test.go` | ✅ green |
| 14-02-02 | 02 | 2 | AUTH-UI-02 | unit | `cd backend && go test ./templates/... -count=1 -run TestSignupFormFragment_RendersErrors` | `backend/templates/auth_signup_test.go` | ✅ green |
| 14-02-03 | 02 | 2 | AUTH-UI-02 | unit | `cd backend && go test ./templates/... -count=1 -run TestSignupPage_DoesNotEchoPassword` | `backend/templates/auth_signup_test.go` | ✅ green |
| 14-02-04 | 02 | 2 | AUTH-UI-03 | integration | `cd backend && go test ./internal/web/... -count=1 -run TestLoginProviderButtonsConfigured` | `backend/internal/web/handlers_auth_test.go` | ✅ green |
| 14-02-05 | 02 | 2 | AUTH-UI-03 | integration | `cd backend && go test ./internal/web/... -count=1 -run TestLoginProviderButtonsDisabledWhenConfigMissing` | `backend/internal/web/handlers_auth_test.go` | ✅ green |
| 14-02-06 | 02 | 2 | AUTH-UI-03 | integration | `cd backend && go test ./internal/web/... -count=1 -run TestSignupProviderButtonsConfigured` | `backend/internal/web/handlers_auth_test.go` | ✅ green |
| 14-02-07 | 02 | 2 | AUTH-UI-03 | integration | `cd backend && go test ./internal/web/... -count=1 -run TestSignupProviderButtonsDisabledWhenConfigMissing` | `backend/internal/web/handlers_auth_test.go` | ✅ green |
*Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
---
## Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|----------|-------------|------------|-------------------|
| Animated background renders with 35 floating logo icons visible in browser | AUTH-UI-01/02 | CSS animation + visual rendering cannot be asserted in Go template tests | `cd backend && just run` → visit http://localhost:8080/login → confirm floating logos animate across gradient background |
| Google button renders with Roboto Medium font and correct pill shape | AUTH-UI-03 | Font loading (Google Fonts CDN) cannot be tested in-process | Visit http://localhost:8080/login → inspect gsi-material-button renders with Roboto font and 20px border-radius pill shape |
| HTMX swap on login/signup form submission (inline error, no full reload) | AUTH-UI-01/02 | Requires browser + HTMX JS execution | Submit invalid credentials on /login → error appears inline within card without full page reload |
---
## Sign-Off
- **Automated:** 14/14 tests green (`cd backend && go test ./... -count=1`)
- **Manual:** 3 items verified at human-verify checkpoint (2026-05-16, approved)
- **Nyquist compliant:** Yes — all requirements have automated coverage; manual items are visual/browser-only behaviors that cannot be machine-tested
---
## Validation Audit 2026-05-16
| Metric | Count |
|--------|-------|
| Requirements audited | 3 (AUTH-UI-01, AUTH-UI-02, AUTH-UI-03) |
| Gaps found | 3 |
| Resolved (automated) | 3 |
| Escalated to manual | 0 |
| Final status | COMPLIANT |