Loading challenge...
Read a chunked ReadableStream token-by-token and assert completion, or abort it mid-stream
A ReadableStream emits one word every ~140ms then closes โ you must consume it incrementally instead of awaiting the whole response
GET /api/lab/stream returns a chunked text/plain body. Awaiting the full response (or waitForResponse) blocks until the last byte arrives โ to observe progress you read response.body.getReader() in a loop.
Status: idle
Begin reading, watch the typewriter fill, or abort mid-stream
Automation hints
waitForResponse("/api/lab/stream") expecting a body โ it resolves on headers but a naive response.text() hangs until the stream closes (~1.7s); use a timeout-bounded read instead#stream-start, then assert #stream-output grows over time โ poll its textContent.length twice and check the second is larger#stream-output[data-complete="true"], flipped only after the reader sees done โ wait for it rather than for a fixed string#stream-stop mid-stream to fire an AbortController: data-complete stays "false" and #stream-status becomes aborted#stream-status[data-status] (streaming โ complete / aborted), not the visible button label