Skip to content

Commit 37e4313

Browse files
committed
test(zed): add test for prefer_focused_window open option value
1 parent a31a950 commit 37e4313

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

crates/zed/src/zed.rs

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5066,4 +5066,65 @@ mod tests {
50665066
"BUG FOUND: Project settings were overwritten when opening via command - original custom content was lost"
50675067
);
50685068
}
5069+
5070+
#[gpui::test]
5071+
async fn test_prefer_focused_window(cx: &mut gpui::TestAppContext) {
5072+
let app_state = init_test(cx);
5073+
let paths = [PathBuf::from(path!("/dir/document.txt"))];
5074+
5075+
app_state
5076+
.fs
5077+
.as_fake()
5078+
.insert_tree(
5079+
path!("/dir"),
5080+
json!({
5081+
"document.txt": "Some of the documentation's content."
5082+
}),
5083+
)
5084+
.await;
5085+
5086+
let project_a = Project::test(app_state.fs.clone(), [Path::new("/dir")], cx).await;
5087+
let window_a =
5088+
cx.add_window(|window, cx| Workspace::test_new(project_a.clone(), window, cx));
5089+
5090+
let project_b = Project::test(app_state.fs.clone(), [Path::new("/dir")], cx).await;
5091+
let window_b =
5092+
cx.add_window(|window, cx| Workspace::test_new(project_b.clone(), window, cx));
5093+
5094+
let project_c = Project::test(app_state.fs.clone(), [Path::new("/dir")], cx).await;
5095+
let window_c =
5096+
cx.add_window(|window, cx| Workspace::test_new(project_c.clone(), window, cx));
5097+
5098+
for window in vec![window_a, window_b, window_c] {
5099+
let _ = cx.update_window(*window, |_, window, _| {
5100+
window.activate_window();
5101+
});
5102+
5103+
cx.update(|cx| {
5104+
let open_options = OpenOptions {
5105+
prefer_focused_window: true,
5106+
..Default::default()
5107+
};
5108+
5109+
workspace::open_paths(&paths, app_state.clone(), open_options, cx)
5110+
})
5111+
.await
5112+
.unwrap();
5113+
5114+
cx.update_window(*window, |_, window, _| assert!(window.is_window_active()))
5115+
.unwrap();
5116+
5117+
let _ = window.read_with(cx, |workspace, cx| {
5118+
let pane = workspace.active_pane().read(cx);
5119+
let project_path = pane.active_item().unwrap().project_path(cx).unwrap();
5120+
5121+
assert!(
5122+
project_path
5123+
.path
5124+
.as_ref()
5125+
.ends_with(rel_path("document.txt"))
5126+
)
5127+
});
5128+
}
5129+
}
50695130
}

0 commit comments

Comments
 (0)