diff --git a/crates/oa-desktop/src/app/source_symbols/tests.rs b/crates/oa-desktop/src/app/source_symbols/tests.rs index 973ee556..7b4b056b 100644 --- a/crates/oa-desktop/src/app/source_symbols/tests.rs +++ b/crates/oa-desktop/src/app/source_symbols/tests.rs @@ -2158,6 +2158,7 @@ fn combined_modal_completion_releases_worker_without_navigation_or_model_changes let mut app = fixture(); let request = begin(&mut app, query::Action::Definition); let ready = completion(&app, request); + let expected = ready.result.as_ref().unwrap().1.clone(); let accepted = app.document.snapshot(); let raw = app.source_workspace.bundle(); let cursor = app.source_editor.cursor(); @@ -2189,7 +2190,11 @@ fn combined_modal_completion_releases_worker_without_navigation_or_model_changes send(&mut app, Message::SourceSymbolsReady(ready)); assert!(app.source_symbols.in_flight.is_none(), "modal {modal}"); assert!(app.source_symbols.request.is_none()); - assert!(app.source_symbols.results.is_none()); + // Current-source display data may finish behind a modal; it grants no navigation. + assert!(Arc::ptr_eq( + app.source_symbols.results.as_ref().unwrap(), + &expected + )); assert!(app.source_symbols.back.is_empty()); assert!(app.source_reveal_ticket().is_none()); assert_eq!(app.source_workspace.active, USES); @@ -2240,6 +2245,7 @@ fn combined_reference_chooser_blocks_navigation_and_completion_precedes_reconcil .move_to(selection(text, offset, offset + alias.len(), false)); let request = begin(&mut app, query::Action::Definition); let ready = completion(&app, request); + let expected = ready.result.as_ref().unwrap().1.clone(); app.page = Page::Diagram; send(&mut app, Message::FieldReferenceOpen(open)); assert!(app.reference_input_active(), "{}", app.status); @@ -2252,7 +2258,11 @@ fn combined_reference_chooser_blocks_navigation_and_completion_precedes_reconcil let cursor = app.source_editor.cursor(); send(&mut app, Message::SourceSymbolsReady(ready)); assert!(app.source_symbols.in_flight.is_none()); - assert!(app.source_symbols.results.is_none()); + // Current-source display data may finish behind a modal; it grants no navigation. + assert!(Arc::ptr_eq( + app.source_symbols.results.as_ref().unwrap(), + &expected + )); assert!(app.source_reveal_ticket().is_none()); assert!( app.reference_input_active(), diff --git a/crates/oa-desktop/src/app/source_symbols/tests/departure_selection.rs b/crates/oa-desktop/src/app/source_symbols/tests/departure_selection.rs index 8fef4ca2..19ccc1f3 100644 --- a/crates/oa-desktop/src/app/source_symbols/tests/departure_selection.rs +++ b/crates/oa-desktop/src/app/source_symbols/tests/departure_selection.rs @@ -41,7 +41,14 @@ fn scoped_escape_retains_references_then_closes_them_without_losing_effective_se assert!(matches!(messages[0], Message::Escape)); send(&mut app, messages.remove(0)); assert!(app.text_workspace.drawer().is_none()); - assert!(app.source_symbols.results.is_none() && app.source_symbols.notice.is_none()); + assert!(Arc::ptr_eq( + app.source_symbols.results.as_ref().unwrap(), + &results + )); + assert_eq!( + app.source_symbols.notice.as_deref(), + Some("Keep this reference notice") + ); reveal(&mut app); assert_eq!(app.source_editor.cursor(), cursor); assert_eq!(