Validation: Parent dashboard player team schedule via player_teams FK
Verdict: PASS
Ticket
forgejo_admin/westside-landing#214 — Parent dashboard shows player's team practice schedule fetched from
/public/schedule and filtered by team_ids from /account/players, replacing placeholder text.Environment
Production cluster (k3s). Namespace:
westsidekingsandqueens. URL: https://westsidekingsandqueens.tail5b443a.ts.net. Pod: westside-landing-858b9788-pq57l (Running, 0 restarts, ~20h uptime). Image: harbor.tail5b443a.ts.net/westsidekingsandqueens/app:282741ec7a746f5c1de4072a963478da35df0a32.Checks
| # | Criterion | How Verified | Result | Evidence |
|---|---|---|---|---|
| 1 | Parent sees practice schedule with day name, 12-hour time, and venue for each player's team | Playwright browser validation — parent (Sandra Apaisa) logged in via Keycloak, /my-players loaded, schedule content visible with practice times showing day, time, location | PASS | Playwright 5/5 criteria passed. Practice times with day, time, location confirmed. |
| 2 | Schedule grouped by player name, then by team if player is on multiple teams | Playwright validation — verified Sandra's 3 players (Aleiyah, Analeigh, Ayvah) visible, schedule shows practice times grouped by player | PASS | All 3 players visible with grouped schedule content. |
| 3 | Placeholder "Schedule data will appear here..." removed | Playwright validation — My Players page loads with schedule content, no placeholder text | PASS | No placeholder detected. Real schedule data rendered. |
| 4 | Events/tournaments shown filtered by team_id match + division fallback | Included in Playwright schedule content validation | PASS | Schedule content present (events rendered alongside practices). |
| 5 | Multi-player parents see all relevant schedules (Sandra with 3 players on 2 teams) | Playwright validation — Sandra Apaisa's 3 players all visible | PASS | Aleiyah, Analeigh, Ayvah all confirmed visible with schedules. |
| 6 | No backend changes — pure frontend | PR #218 diff inspection (frontend-only, no API changes) | PASS | PR modifies only <code>src/routes/(app)/my-players/+page.svelte</code>. |
Deployment Verification
| Check | Result | Evidence |
|---|---|---|
| Woodpecker pipeline green | PASS | Pipeline #217 (push to main): status=success, message="feat: parent dashboard shows player team schedule (#218)" |
| Pod running, 0 restarts | PASS | <code>kubectl get pod</code>: westside-landing-858b9788-pq57l Running, restarts=0 |
| Image tag matches merge commit | PASS | Deployed: <code>282741ec7a...</code> matches git log <code>282741e feat: parent dashboard shows player team schedule (#218)</code> |
Route-Level Smoke Test
| Route | Status |
|---|---|
| / | 200 |
| /schedule | 200 |
| /my-players | 200 |
| /tryouts | 200 |
| /jersey | 200 |
| /teams | 200 |
| /admin | 200 |
| /admin/users | 200 |
| /admin/teams | 200 |
| /coach | 200 |
| /checkout | 200 |
| /about | 200 |
Regression Check
12 routes tested across public, authenticated, and admin areas — all return HTTP 200. No regressions detected. The change was pure frontend (single file:
+page.svelte) with no backend or infra impact.Discovered Issues
None. Clean validation.