diff --git a/crates/oa-desktop/src/app/source_rename/tests.rs b/crates/oa-desktop/src/app/source_rename/tests.rs index 2b90ec6e..60157ff5 100644 --- a/crates/oa-desktop/src/app/source_rename/tests.rs +++ b/crates/oa-desktop/src/app/source_rename/tests.rs @@ -804,13 +804,25 @@ fn captured_escape(app: &App) -> Vec { .unwrap(); let _entered = runtime.enter(); let mut messages = Vec::new(); + let mut keyboard_boundaries = 0; for recipe in subscription::into_recipes(app.subscription()) { let mut output = recipe.stream(Box::pin(stream::iter([event.clone()]))); let mut context = PollContext::from_waker(noop_waker_ref()); while let Poll::Ready(Some(message)) = output.poll_next_unpin(&mut context) { - messages.push(message); + if matches!( + &message, + Message::WorkDrag(crate::app::allocation_drag::Event::KeyboardBoundary) + ) { + keyboard_boundaries += 1; + } else { + messages.push(message); + } } } + assert_eq!( + keyboard_boundaries, 1, + "each key has exactly one passive allocation notification" + ); messages } @@ -843,11 +855,13 @@ fn actual_captured_escape_closes_only_its_priority_owner_and_retains_worker() { let before = evidence(&app); let mut messages = captured_escape(&app); assert_eq!(messages.len(), 1); + assert!(matches!(messages[0], Message::Escape)); send(&mut app, messages.remove(0)); if other_modal != 0 { assert!(app.source_rename.open(), "existing modal has priority"); let mut messages = captured_escape(&app); assert_eq!(messages.len(), 1); + assert!(matches!(messages[0], Message::Escape)); send(&mut app, messages.remove(0)); } assert!(!app.source_rename.open());