Fix tab following order test to wait for file open to propagate

Now it can actually repro the original bug

Co-Authored-By: Max Brunsfeld <max@zed.dev>
This commit is contained in:
Julia 2022-12-02 16:09:37 -05:00
parent 239a04ea5b
commit 4bc1d77535
2 changed files with 14 additions and 10 deletions

View file

@ -5040,14 +5040,6 @@ async fn test_following_tab_order(
//Verify that the tabs opened in the order we expect
assert_eq!(&pane_paths(&pane_a, cx_a), &["1.txt", "3.txt"]);
//Open just 2 on client B
workspace_b
.update(cx_b, |workspace, cx| {
workspace.open_path((worktree_id, "2.txt"), None, true, cx)
})
.await
.unwrap();
//Follow client B as client A
workspace_a
.update(cx_a, |workspace, cx| {
@ -5058,6 +5050,15 @@ async fn test_following_tab_order(
.await
.unwrap();
//Open just 2 on client B
workspace_b
.update(cx_b, |workspace, cx| {
workspace.open_path((worktree_id, "2.txt"), None, true, cx)
})
.await
.unwrap();
deterministic.run_until_parked();
// Verify that newly opened followed file is at the end
assert_eq!(&pane_paths(&pane_a, cx_a), &["1.txt", "3.txt", "2.txt"]);
@ -5069,6 +5070,7 @@ async fn test_following_tab_order(
.await
.unwrap();
assert_eq!(&pane_paths(&pane_b, cx_b), &["2.txt", "1.txt"]);
deterministic.run_until_parked();
// Verify that following into 1 did not reorder
assert_eq!(&pane_paths(&pane_a, cx_a), &["1.txt", "3.txt", "2.txt"]);

View file

@ -55,9 +55,11 @@ impl FollowableItem for Editor {
let buffer = buffer.await?;
let editor = pane
.read_with(&cx, |pane, cx| {
pane.items_of_type::<Self>().find(|editor| {
let existing = pane.items_of_type::<Self>().find(|editor| {
editor.read(cx).buffer.read(cx).as_singleton().as_ref() == Some(&buffer)
})
});
dbg!(&existing);
existing
})
.unwrap_or_else(|| {
pane.update(&mut cx, |_, cx| {