From 44095f78c28b79d6d085863dc928adba8e24d955 Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Sat, 12 Sep 2026 23:46:26 -0700 Subject: [PATCH] test: distinguish rename Escape from canvas key notification --- crates/oa-desktop/src/app/source_rename/tests.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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());