From ac062271ff58a0d755f411f5368dbb2e8eda2f76 Mon Sep 17 00:00:00 2001 From: eric8810 Date: Tue, 29 Sep 2026 22:21:06 +0800 Subject: [PATCH] test(elevenlabs): arm the mid-session abort after do_stream returns stream_abort_mid_session started its 100ms abort timer before do_stream. On a slow runner the abort fired during the connect, do_stream returned Aborted, and the unwrap panicked (seen on #197's CI). Start the timer once the session is up so the abort is always mid-session. Co-Authored-By: Claude --- .../tests/elevenlabs_realtime_stream_test.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/aimux-providers/tests/elevenlabs_realtime_stream_test.rs b/aimux-providers/tests/elevenlabs_realtime_stream_test.rs index b4fd3fc9..e00f1583 100644 --- a/aimux-providers/tests/elevenlabs_realtime_stream_test.rs +++ b/aimux-providers/tests/elevenlabs_realtime_stream_test.rs @@ -468,20 +468,22 @@ async fn stream_abort_mid_session() { .await; let abort = AbortSignal::new(); - let abort_clone = abort.clone(); - tokio::spawn(async move { - tokio::time::sleep(Duration::from_millis(100)).await; - abort_clone.abort(); - }); - let model = realtime_model(&base_url, "scribe_v2_realtime"); let result = model .do_stream(stream_options( vec![AudioChunk::Binary(vec![1])], - Some(abort), + Some(abort.clone()), )) .await .unwrap(); + + // Arm the abort only once the session is up: a timer started before + // `do_stream` can fire during the connect on a slow runner, and then the + // abort is no longer mid-session. + tokio::spawn(async move { + tokio::time::sleep(Duration::from_millis(100)).await; + abort.abort(); + }); let parts = collect(result).await; assert!( parts