race day tester + fixa open practice start och decoder-omritning

Nytt browser-test för start/paus/fortsätt/finish och byte till
nästa heat i kön, mot en simulerad decoder-socket (ingen riktig
AMMC-hårdvara). Hittade och fixade två buggar under vägen:

- Open Practice på sponsor/track-event kunde inte startas trots
  grönt ljus i förkontrollen (separat, striktare kontroll saknade
  samma undantag)
- Race Day-vyn ritades aldrig om när decodern anslöt/kopplades ner

Testramverket hanterar nu även native alert()/confirm()-dialoger
automatiskt, annars fryser en headless körning helt.
This commit is contained in:
larssand
2026-09-09 06:59:54 +02:00
parent b3bec531de
commit acab99ed4d
6 changed files with 188 additions and 5 deletions

View File

@@ -23,12 +23,15 @@ Acceptance: real create/edit/save flows persist after reload; background updates
- [x] Cover sponsor-event creation/editing and endurance race wizard/name edits with reload verification.
- [x] Cover team creation, membership changes, editing and deletion.
- [x] Cover Open Practice to team-race conversion, duration/follow-up edits and persisted lap limits.
- [ ] Cover other session-type transitions and start/finish controls.
- [x] Cover Race Day start/pause/resume/finish controls and switching to the next queued heat, with a simulated decoder socket (no real AMMC hardware).
- [ ] Cover session-type-specific start sequences (heat/qualification/race/team_race countdown and audio) and other transitions beyond Open Practice.
- [x] Verify leaderboard/TV/team sorting heading alignment at 390/900/1600 px and preserved race positions.
- [x] Verify OBS views have no interactive sorting controls.
- [ ] Cover actual popup launching and compact OBS layout automatically.
- [ ] Add Windows and Linux CI runs for supported runtimes.
Verified 2026-09-08: Race Day start/pause/resume/finish and next-heat selection pass end to end (`tests/browser_race_day.js`) against a simulated decoder socket, with native-dialog auto-accept added to the browser harness so an unexpected `alert()`/`confirm()` fails the test instead of hanging it. Found and fixed two real bugs in the process: Open Practice sessions on a track-mode (sponsor) event showed a ready/green preflight but were silently blocked from starting by a stricter assignment check; and the Race Day view never refreshed when the decoder connected, disconnected, or errored, so its Start button and preflight checklist could stay stale after a page load.
## 2. Connection and save status
Acceptance: users can distinguish server contact, pending edits, an active save and a failed save; a health check never falsely confirms a failed write.
@@ -95,3 +98,11 @@ Acceptance: a driver receives a short, encouraging summary based on their own cl
- [ ] Update the architecture's module/dependency inventory as modules change.
- [ ] Complete state/settings/SQLite contracts and critical form-to-controller mappings.
- [ ] Consolidate older future-work notes so this file remains the primary roadmap.
# Träningsstat
lägga till mera skoj utvecklande tränings format
- [ ]
2. "Pyramiden" (För extrem mental uthållighet)I racing tappar man ofta koncentrationen i mitten av ett lopp. Detta upplägg tvingar dig att hålla fokus när hjärnan börjar bli trött.Fas 1: 5 varv på 70% fart (Hitta linjerna och värm upp)Fas 2: 5 varv på 90% fart (Skruva upp tempot)Fas 3: 5 varv på 100% fart (Maxattack)Fas 4: 5 varv på 90% fart (Håll farten trots trötthet)Fas 5: 5 varv på 70% fart (Nedvarvning och analys av bilen)
- [ ]
3. "Konsistens-jakten" (F1-förarnas favorit)F1-team bryr sig ofta mer om konstanta varvtider än ett enda supersnabbt varv.Bestäm dig för en måltid (t.ex. 85% av din maxfart).Kör 15 varv på rad där målet är att alla varv ska ligga inom (konfigurerbart) 0,2 sekunder från varandra.Om du kör ett varv som är för snabbt eller för långsamt, "stryks" serien och du får börja om. Detta bygger ett otroligt muskelminne för bromspunkter och kurvhastighet.