diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 510a94c2f1..74fcd27fc3 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -5129,9 +5129,9 @@ async fn test_following_with_multiple_excerpts(cx: &mut gpui::TestAppContext) { .await .unwrap(); - let follower_1_update = Rc::new(RefCell::new(None)); + let update_message = Rc::new(RefCell::new(None)); follower_1.update(cx, { - let update = follower_1_update.clone(); + let update = update_message.clone(); |_, cx| { cx.subscribe(&leader, move |_, leader, event, cx| { leader @@ -5192,6 +5192,19 @@ async fn test_following_with_multiple_excerpts(cx: &mut gpui::TestAppContext) { }); }); + // Apply the update of adding the excerpts. + follower_1 + .update(cx, |follower, cx| { + follower.apply_update_proto(&project, update_message.borrow().clone().unwrap(), cx) + }) + .await + .unwrap(); + assert_eq!( + follower_1.read_with(cx, Editor::text), + leader.read_with(cx, Editor::text) + ); + update_message.borrow_mut().take(); + // Start following separately after it already has excerpts. let mut state_message = leader.update(cx, |leader, cx| leader.to_state_proto(cx)); let follower_2 = cx @@ -5206,22 +5219,6 @@ async fn test_following_with_multiple_excerpts(cx: &mut gpui::TestAppContext) { leader.read_with(cx, Editor::text) ); - // Apply the update of adding the excerpts. - follower_1 - .update(cx, |follower, cx| { - follower.apply_update_proto( - &project, - follower_1_update.borrow_mut().take().unwrap(), - cx, - ) - }) - .await - .unwrap(); - assert_eq!( - follower_1.read_with(cx, Editor::text), - leader.read_with(cx, Editor::text) - ); - // Remove some excerpts. leader.update(cx, |leader, cx| { leader.buffer.update(cx, |multibuffer, cx| { @@ -5234,14 +5231,17 @@ async fn test_following_with_multiple_excerpts(cx: &mut gpui::TestAppContext) { // Apply the update of removing the excerpts. follower_1 .update(cx, |follower, cx| { - follower.apply_update_proto( - &project, - follower_1_update.borrow_mut().take().unwrap(), - cx, - ) + follower.apply_update_proto(&project, update_message.borrow().clone().unwrap(), cx) }) .await .unwrap(); + follower_2 + .update(cx, |follower, cx| { + follower.apply_update_proto(&project, update_message.borrow().clone().unwrap(), cx) + }) + .await + .unwrap(); + update_message.borrow_mut().take(); assert_eq!( follower_1.read_with(cx, Editor::text), leader.read_with(cx, Editor::text)