Fix more failing/hanging unit tests

Antonio Scandurra created

Change summary

zed/src/channel.rs  | 30 +++++++++++++++---------------
zed/src/worktree.rs | 24 ++++++++++++++++--------
2 files changed, 31 insertions(+), 23 deletions(-)

Detailed changes

zed/src/channel.rs 🔗

@@ -615,21 +615,6 @@ mod tests {
         let channel_list = cx.add_model(|cx| ChannelList::new(user_store, client.clone(), cx));
         channel_list.read_with(&cx, |list, _| assert_eq!(list.available_channels(), None));
 
-        let get_users = server.receive::<proto::GetUsers>().await.unwrap();
-        assert_eq!(get_users.payload.user_ids, vec![5]);
-        server
-            .respond(
-                get_users.receipt(),
-                proto::GetUsersResponse {
-                    users: vec![proto::User {
-                        id: 5,
-                        github_login: "nathansobo".into(),
-                        avatar_url: "http://avatar.com/nathansobo".into(),
-                    }],
-                },
-            )
-            .await;
-
         // Get the available channels.
         let get_channels = server.receive::<proto::GetChannels>().await.unwrap();
         server
@@ -654,6 +639,21 @@ mod tests {
             )
         });
 
+        let get_users = server.receive::<proto::GetUsers>().await.unwrap();
+        assert_eq!(get_users.payload.user_ids, vec![5]);
+        server
+            .respond(
+                get_users.receipt(),
+                proto::GetUsersResponse {
+                    users: vec![proto::User {
+                        id: 5,
+                        github_login: "nathansobo".into(),
+                        avatar_url: "http://avatar.com/nathansobo".into(),
+                    }],
+                },
+            )
+            .await;
+
         // Join a channel and populate its existing messages.
         let channel = channel_list
             .update(&mut cx, |list, cx| {

zed/src/worktree.rs 🔗

@@ -2806,8 +2806,11 @@ mod tests {
             }
         }));
 
+        let user_id = 5;
+        let mut client = rpc::Client::new();
+        let server = FakeServer::for_client(user_id, &mut client, &cx).await;
         let tree = Worktree::open_local(
-            rpc::Client::new(),
+            client,
             dir.path(),
             Arc::new(RealFs),
             Default::default(),
@@ -2844,15 +2847,20 @@ mod tests {
         // Create a remote copy of this worktree.
         let initial_snapshot = tree.read_with(&cx, |tree, _| tree.snapshot());
         let worktree_id = 1;
-        let share_request = tree
-            .update(&mut cx, |tree, cx| {
-                tree.as_local().unwrap().share_request(cx)
-            })
-            .await
-            .unwrap();
+        let share_request = tree.update(&mut cx, |tree, cx| {
+            tree.as_local().unwrap().share_request(cx)
+        });
+        let open_worktree = server.receive::<proto::OpenWorktree>().await.unwrap();
+        server
+            .respond(
+                open_worktree.receipt(),
+                proto::OpenWorktreeResponse { worktree_id: 1 },
+            )
+            .await;
+
         let remote = Worktree::remote(
             proto::JoinWorktreeResponse {
-                worktree: share_request.worktree,
+                worktree: share_request.await.unwrap().worktree,
                 replica_id: 1,
                 peers: Vec::new(),
             },