Fix dev server projects reconnect (#13484)
Release Notes: - Improved handling of client reconnects for dev-servers (alpha group only)
This commit is contained in:
parent
df11b646da
commit
1ffd87b87e
3 changed files with 27 additions and 4 deletions
|
@ -2583,14 +2583,13 @@ async fn rejoin_dev_server_projects(
|
||||||
)
|
)
|
||||||
.await?
|
.await?
|
||||||
};
|
};
|
||||||
notify_rejoined_projects(&mut rejoined_projects, &session)?;
|
|
||||||
|
|
||||||
response.send(proto::RejoinRemoteProjectsResponse {
|
response.send(proto::RejoinRemoteProjectsResponse {
|
||||||
rejoined_projects: rejoined_projects
|
rejoined_projects: rejoined_projects
|
||||||
.into_iter()
|
.iter()
|
||||||
.map(|project| project.to_proto())
|
.map(|project| project.to_proto())
|
||||||
.collect(),
|
.collect(),
|
||||||
})
|
})?;
|
||||||
|
notify_rejoined_projects(&mut rejoined_projects, &session)
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn reconnect_dev_server(
|
async fn reconnect_dev_server(
|
||||||
|
|
|
@ -73,6 +73,7 @@ impl ConnectionPool {
|
||||||
pub fn reset(&mut self) {
|
pub fn reset(&mut self) {
|
||||||
self.connections.clear();
|
self.connections.clear();
|
||||||
self.connected_users.clear();
|
self.connected_users.clear();
|
||||||
|
self.connected_dev_servers.clear();
|
||||||
self.channels.clear();
|
self.channels.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -504,6 +504,29 @@ async fn test_dev_server_reconnect(
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[gpui::test]
|
||||||
|
async fn test_dev_server_restart(cx1: &mut gpui::TestAppContext, cx2: &mut gpui::TestAppContext) {
|
||||||
|
let (server, client1) = TestServer::start1(cx1).await;
|
||||||
|
|
||||||
|
let (_dev_server, remote_workspace) =
|
||||||
|
create_dev_server_project(&server, client1.app_state.clone(), cx1, cx2).await;
|
||||||
|
let cx = VisualTestContext::from_window(remote_workspace.into(), cx1).as_mut();
|
||||||
|
|
||||||
|
server.reset().await;
|
||||||
|
cx.run_until_parked();
|
||||||
|
|
||||||
|
cx.simulate_keystrokes("cmd-p 1 enter");
|
||||||
|
remote_workspace
|
||||||
|
.update(cx, |ws, cx| {
|
||||||
|
ws.active_item_as::<Editor>(cx)
|
||||||
|
.unwrap()
|
||||||
|
.update(cx, |ed, cx| {
|
||||||
|
assert_eq!(ed.text(cx).to_string(), "remote\nremote\nremote");
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
#[gpui::test]
|
#[gpui::test]
|
||||||
async fn test_create_dev_server_project_path_validation(
|
async fn test_create_dev_server_project_path_validation(
|
||||||
cx1: &mut gpui::TestAppContext,
|
cx1: &mut gpui::TestAppContext,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue