E2E validation: contract sign → confirmation email → GroupMe link full-flow test #7

Closed
opened 2026-03-24 18:38:52 +00:00 by forgejo_admin · 1 comment

Type

Feature

Lineage

plan-wkq → Phase 14 (Billing Tiers & Contracts) — final validation gate before contract send

Repo

forgejo_admin/westside-contracts

User Story

As admin (Lucas/Marcus)
I want to walk through the complete contract signing flow with test players
So that I know the amounts, emails, and GroupMe links all work correctly before sending to real families

Context

The contract system spans three services: westside-contracts (UI), basketball-api (outbox + email), and MinIO (signature storage). Before sending contracts to 38 real players, the entire flow must be proven end-to-end with test players. This is a one-time validation gate, not a permanent test suite.

Test players available:

File Targets

No code changes — this is a manual walkthrough validating existing deployed services.

Files the agent should NOT touch:

  • Any production code — this ticket is validation only

Acceptance Criteria

  • Navigate to test player contract URL — correct monthly fee displays
  • Travel contract variant shows all tournament costs, practice schedule, payment schedule
  • Local contract variant shows simplified terms, correct practice schedule per team
  • Sign the contract (signature pad + legal name + checkbox)
  • Success overlay appears immediately
  • Confirmation email arrives at test email address within 60 seconds
  • Email contains correct team name and GroupMe share link
  • GroupMe share link resolves to correct team group
  • Database: contract_status=signed, contract_signed_at populated, outbox event=processed, email_log entry exists
  • Repeat for both travel and local contract variants
  • Lucas and Marcus both walk through successfully

Test Expectations

  • Manual E2E: Lucas signs test player 181 contract, receives email, clicks GroupMe link
  • Manual E2E: Marcus signs test player 155 contract, receives email, clicks GroupMe link
  • Manual E2E: Marcus signs test player 182 (local variant), receives email
  • Run command: DB verification queries after each signing

Constraints

  • Must complete AFTER westside-contracts Issue #6 (outbox bug fix) is deployed
  • Must complete AFTER basketball-api Issue #160 (data verification) is resolved
  • Both Lucas and Marcus must walk through — not just one person

Checklist

  • Outbox bug fix deployed (Issue #6)
  • Data verified clean (Issue #160)
  • Lucas walkthrough complete
  • Marcus walkthrough complete
  • Green light to send real contracts
  • project-westside-basketball — project this affects
  • forgejo_admin/westside-contracts #6 — outbox bug fix (blocks this)
  • forgejo_admin/basketball-api #160 — data verification (blocks this)
  • forgejo_admin/westside-app #73 — send travel contracts (blocked by this)
  • forgejo_admin/westside-app #74 — send local contracts (blocked by this)
### Type Feature ### Lineage `plan-wkq` → Phase 14 (Billing Tiers & Contracts) — final validation gate before contract send ### Repo `forgejo_admin/westside-contracts` ### User Story As admin (Lucas/Marcus) I want to walk through the complete contract signing flow with test players So that I know the amounts, emails, and GroupMe links all work correctly before sending to real families ### Context The contract system spans three services: westside-contracts (UI), basketball-api (outbox + email), and MinIO (signature storage). Before sending contracts to 38 real players, the entire flow must be proven end-to-end with test players. This is a one-time validation gate, not a permanent test suite. Test players available: - Player 155 "Creed draney" (Test Elite Kings) — Marcus: Marcusdraney23@gmail.com - Player 182 "Creed Draney Jr" (Test Local Kings) — Marcus: Marcusdraney23@gmail.com - Player 181 "Test Demo Player" (17U Elite Kings) — Lucas: draneylucas@gmail.com ### File Targets No code changes — this is a manual walkthrough validating existing deployed services. Files the agent should NOT touch: - Any production code — this ticket is validation only ### Acceptance Criteria - [ ] Navigate to test player contract URL — correct monthly fee displays - [ ] Travel contract variant shows all tournament costs, practice schedule, payment schedule - [ ] Local contract variant shows simplified terms, correct practice schedule per team - [ ] Sign the contract (signature pad + legal name + checkbox) - [ ] Success overlay appears immediately - [ ] Confirmation email arrives at test email address within 60 seconds - [ ] Email contains correct team name and GroupMe share link - [ ] GroupMe share link resolves to correct team group - [ ] Database: contract_status=signed, contract_signed_at populated, outbox event=processed, email_log entry exists - [ ] Repeat for both travel and local contract variants - [ ] Lucas and Marcus both walk through successfully ### Test Expectations - [ ] Manual E2E: Lucas signs test player 181 contract, receives email, clicks GroupMe link - [ ] Manual E2E: Marcus signs test player 155 contract, receives email, clicks GroupMe link - [ ] Manual E2E: Marcus signs test player 182 (local variant), receives email - Run command: DB verification queries after each signing ### Constraints - Must complete AFTER westside-contracts Issue #6 (outbox bug fix) is deployed - Must complete AFTER basketball-api Issue #160 (data verification) is resolved - Both Lucas and Marcus must walk through — not just one person ### Checklist - [ ] Outbox bug fix deployed (Issue #6) - [ ] Data verified clean (Issue #160) - [ ] Lucas walkthrough complete - [ ] Marcus walkthrough complete - [ ] Green light to send real contracts ### Related - `project-westside-basketball` — project this affects - `forgejo_admin/westside-contracts #6` — outbox bug fix (blocks this) - `forgejo_admin/basketball-api #160` — data verification (blocks this) - `forgejo_admin/westside-app #73` — send travel contracts (blocked by this) - `forgejo_admin/westside-app #74` — send local contracts (blocked by this)
Author
Owner

Closing — done. Contract infrastructure complete, Phase 15 SPA overhaul supersedes current-app features.

Closing — done. Contract infrastructure complete, Phase 15 SPA overhaul supersedes current-app features.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/westside-contracts#7
No description provided.