Pit Wall Telemetry · Streaming Feed

A live-updating feed: telemetry rows stream in on a fixed interval until the checkered flag lands as an honest, waitable end state.

Twelve laps stream onto the timing screen. Wait for the checkered flag, not a lucky sleep.

Streaming Feed is a medium Waits & Dynamics challenge on Fun UI Playground. A live-updating feed: telemetry rows stream in on a fixed interval until the checkered flag lands as an honest, waitable end state. It runs entirely in the browser, with no backend. Every interactive element carries a stable id and data-testid prefixed with “live-feed-”, and the techniques it exercises are wait for appended rows, terminal-state waits, aria-live regions, polling assertions.

At a glance

Category
Waits & Dynamics
Difficulty
medium
Teaches
wait for appended rows · terminal-state waits · aria-live regions · polling assertions
Backend
None — runs entirely in the browser
Locators
Stable id and data-testid, prefixed live-feed-

Selectors on this page

LocatorWhat it is
#live-feed-start ul#live-feed-log #live-feed-item-1Start: #live-feed-start · rows land in ul#live-feed-log (role="log") as #live-feed-item-1 … -12
#live-feed-countLive counter in #live-feed-count ("N of 12 laps")
#live-feed-endThe end state is #live-feed-end (🏁) — wait for it instead of sleeping

Frequently asked questions

How do I wait for a streaming feed to finish?

Wait for the terminal state, not a duration. Click #live-feed-start, then wait for #live-feed-end (the checkered flag). Rows land in ul#live-feed-log as #live-feed-item-1 … -12 and #live-feed-count reports progress. ?delay=100 speeds the 800 ms interval up for CI.

How do I assert on rows that arrive over time?

Either assert the final state once the flag lands, or poll one specific row's text. The log is a role="log" live region and the twelve laps stream identical rows on every run, so exact per-row assertions are safe here.

More Waits & Dynamics

Updated

Fun UI Playground — all challenges, bug hunts, getting started, glossary, about.