Don't run until all the way until parked when waiting for a model's next event

Max Brunsfeld created

Change summary

crates/gpui2/src/app/test_context.rs | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)

Detailed changes

crates/gpui2/src/app/test_context.rs 🔗

@@ -354,10 +354,18 @@ impl<T: Send> Model<T> {
             })
         });
 
-        cx.executor().run_until_parked();
-        rx.try_next()
-            .expect("no event received")
-            .expect("model was dropped")
+        loop {
+            match rx.try_next() {
+                Ok(Some(event)) => return event,
+                Ok(None) => panic!("model was dropped"),
+                Err(_) => {
+                    if !cx.executor().run_step() {
+                        break;
+                    }
+                }
+            }
+        }
+        panic!("no event received")
     }
 }