mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-12 05:15:00 +00:00
Update contacts panel test to reflect new RPC message flow
This commit is contained in:
parent
b5d862abfe
commit
336d69fc61
1 changed files with 48 additions and 60 deletions
|
@ -1260,6 +1260,13 @@ mod tests {
|
|||
.detach();
|
||||
});
|
||||
|
||||
let request = server.receive::<proto::RegisterProject>().await.unwrap();
|
||||
server
|
||||
.respond(
|
||||
request.receipt(),
|
||||
proto::RegisterProjectResponse { project_id: 200 },
|
||||
)
|
||||
.await;
|
||||
let get_users_request = server.receive::<proto::GetUsers>().await.unwrap();
|
||||
server
|
||||
.respond(
|
||||
|
@ -1337,6 +1344,19 @@ mod tests {
|
|||
..Default::default()
|
||||
});
|
||||
|
||||
assert_eq!(
|
||||
server
|
||||
.receive::<proto::UpdateProject>()
|
||||
.await
|
||||
.unwrap()
|
||||
.payload,
|
||||
proto::UpdateProject {
|
||||
project_id: 200,
|
||||
online: false,
|
||||
worktrees: vec![]
|
||||
},
|
||||
);
|
||||
|
||||
cx.foreground().run_until_parked();
|
||||
assert_eq!(
|
||||
cx.read(|cx| render_to_strings(&panel, cx)),
|
||||
|
@ -1380,36 +1400,6 @@ mod tests {
|
|||
]
|
||||
);
|
||||
|
||||
// The server responds, assigning the project a remote id. It still appears
|
||||
// as loading, because the server hasn't yet sent out the updated contact
|
||||
// state for the current user.
|
||||
let request = server.receive::<proto::RegisterProject>().await.unwrap();
|
||||
server
|
||||
.respond(
|
||||
request.receipt(),
|
||||
proto::RegisterProjectResponse { project_id: 200 },
|
||||
)
|
||||
.await;
|
||||
cx.foreground().run_until_parked();
|
||||
assert_eq!(
|
||||
cx.read(|cx| render_to_strings(&panel, cx)),
|
||||
&[
|
||||
"v Requests",
|
||||
" incoming user_one",
|
||||
" outgoing user_two",
|
||||
"v Online",
|
||||
" the_current_user",
|
||||
" dir3",
|
||||
" 🔒 private_dir (going online...)",
|
||||
" user_four",
|
||||
" dir2",
|
||||
" user_three",
|
||||
" dir1",
|
||||
"v Offline",
|
||||
" user_five",
|
||||
]
|
||||
);
|
||||
|
||||
// The server receives the project's metadata and updates the contact metadata
|
||||
// for the current user. Now the project appears as online.
|
||||
assert_eq!(
|
||||
|
@ -1417,14 +1407,22 @@ mod tests {
|
|||
.receive::<proto::UpdateProject>()
|
||||
.await
|
||||
.unwrap()
|
||||
.payload
|
||||
.worktrees,
|
||||
&[proto::WorktreeMetadata {
|
||||
.payload,
|
||||
proto::UpdateProject {
|
||||
project_id: 200,
|
||||
online: true,
|
||||
worktrees: vec![proto::WorktreeMetadata {
|
||||
id: worktree_id,
|
||||
root_name: "private_dir".to_string(),
|
||||
visible: true,
|
||||
}],
|
||||
}]
|
||||
},
|
||||
);
|
||||
server
|
||||
.receive::<proto::UpdateWorktreeExtensions>()
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
server.send(proto::UpdateContacts {
|
||||
contacts: vec![proto::Contact {
|
||||
user_id: current_user_id,
|
||||
|
@ -1489,7 +1487,19 @@ mod tests {
|
|||
|
||||
// The server receives the unregister request and updates the contact
|
||||
// metadata for the current user. The project is now offline.
|
||||
let request = server.receive::<proto::UnregisterProject>().await.unwrap();
|
||||
assert_eq!(
|
||||
server
|
||||
.receive::<proto::UpdateProject>()
|
||||
.await
|
||||
.unwrap()
|
||||
.payload,
|
||||
proto::UpdateProject {
|
||||
project_id: 200,
|
||||
online: false,
|
||||
worktrees: vec![]
|
||||
},
|
||||
);
|
||||
|
||||
server.send(proto::UpdateContacts {
|
||||
contacts: vec![proto::Contact {
|
||||
user_id: current_user_id,
|
||||
|
@ -1523,28 +1533,6 @@ mod tests {
|
|||
]
|
||||
);
|
||||
|
||||
// The server responds to the unregister request.
|
||||
server.respond(request.receipt(), proto::Ack {}).await;
|
||||
cx.foreground().run_until_parked();
|
||||
assert_eq!(
|
||||
cx.read(|cx| render_to_strings(&panel, cx)),
|
||||
&[
|
||||
"v Requests",
|
||||
" incoming user_one",
|
||||
" outgoing user_two",
|
||||
"v Online",
|
||||
" the_current_user",
|
||||
" dir3",
|
||||
" 🔒 private_dir",
|
||||
" user_four",
|
||||
" dir2",
|
||||
" user_three",
|
||||
" dir1",
|
||||
"v Offline",
|
||||
" user_five",
|
||||
]
|
||||
);
|
||||
|
||||
panel.update(cx, |panel, cx| {
|
||||
panel
|
||||
.filter_editor
|
||||
|
|
Loading…
Reference in a new issue