Align root retention assertions with exact current-source drawer ownership

This commit is contained in:
2026-09-13 04:12:18 -07:00
parent 74542ae2c1
commit 16904398db
2 changed files with 20 additions and 3 deletions
@@ -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(),
@@ -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!(