Polish live timing UI

This commit is contained in:
2026-05-25 10:45:35 -04:00
parent e539abcc5f
commit 9532206522
9 changed files with 269 additions and 42 deletions

View File

@@ -2,7 +2,9 @@ import { describe, expect, it } from 'vitest'
import {
extrapolateClock,
latestRaceControl,
positionDeltaClass,
parseLiveStateEvent,
rcFlagClass,
sortLiveTimingRows,
trackStatusLabel,
tyreClass,
@@ -121,6 +123,16 @@ describe('live transforms', () => {
expect(latestRaceControl(snapshot.RCMessages, 1)[0].Message).toBe('DRS ENABLED')
})
it('maps position delta and race-control flag classes', () => {
expect(positionDeltaClass(snapshot.Drivers['16'])).toBe('pos-gain')
expect(positionDeltaClass(snapshot.Drivers['1'])).toBe('pos-loss')
expect(positionDeltaClass({ ...snapshot.Drivers['1'], PrevPosition: 2, Position: 2 })).toBe('')
expect(rcFlagClass('GREEN')).toBe('rc-flag-green')
expect(rcFlagClass('safety car')).toBe('rc-flag-sc')
expect(rcFlagClass('virtual safety car')).toBe('rc-flag-vsc')
expect(rcFlagClass('unknown')).toBe('')
})
it('extrapolates the session clock from the reference time', () => {
expect(extrapolateClock('01:20:00', '2026-05-25T12:00:00Z', true, Date.parse('2026-05-25T12:00:30Z'))).toBe('01:19:30')
})