Happy path
Organizer creates teams.
Team names, colors, capacity, and membership rules are saved.
Attendees join or are assigned.
Membership is idempotent by attendee and team event.
Scores update leaderboard.
Server-side arithmetic decides points; stations render sorted ranks.
Failure modes
Teams live rubric
All EFx WebSocket probes apply, plus server-side score arithmetic, SMS teammate-finding gap, and membership constraints.
Stable test attributes
Visibility teeth. Team controls and leaderboard rows must be visible when active and interactive where applicable.
| data-test | Where | Purpose |
|---|---|---|
efx-teams-admin-panel | Organizer EFx controls | Teams setup |
efx-teams-team-form | Organizer EFx controls | Team editor |
efx-teams-member-table | Organizer EFx controls | Membership rows |
efx-teams-score-form | Organizer EFx controls | Score editor |
efx-teams-score-submit | Score editor | Score submit |
efx-teams-leaderboard | Station display | Live ranks |
efx-teams-leaderboard-row | Station display | Rank row |
efx-teams-sms-gap-panel | Teams module | Teammate SMS gap |
efx-station-socket-status | Station runtime | Socket status |
efx-station-active-state | Station runtime | Module state |
Agent test plan
- teams-admin-visible
- team-membership-saves
- score-submit-authoritative
- leaderboard-sorts-by-server-score
- sms-teammate-gap-visible
- all WebSocket rubric probes in failureModes