Merge branch 'main' into user-timeline
This commit is contained in:
commit
d3b9eca791
50 changed files with 3076 additions and 1109 deletions
|
@ -50,7 +50,6 @@ use std::{
|
|||
time::Duration,
|
||||
};
|
||||
use theme::ThemeRegistry;
|
||||
use tokio::sync::RwLockReadGuard;
|
||||
use workspace::{Item, SplitDirection, ToggleFollow, Workspace};
|
||||
|
||||
#[ctor::ctor]
|
||||
|
@ -596,7 +595,7 @@ async fn test_offline_projects(
|
|||
deterministic.run_until_parked();
|
||||
assert!(server
|
||||
.store
|
||||
.read()
|
||||
.lock()
|
||||
.await
|
||||
.project_metadata_for_user(user_a)
|
||||
.is_empty());
|
||||
|
@ -630,7 +629,7 @@ async fn test_offline_projects(
|
|||
cx_a.foreground().advance_clock(rpc::RECEIVE_TIMEOUT);
|
||||
assert!(server
|
||||
.store
|
||||
.read()
|
||||
.lock()
|
||||
.await
|
||||
.project_metadata_for_user(user_a)
|
||||
.is_empty());
|
||||
|
@ -1491,7 +1490,7 @@ async fn test_collaborating_with_diagnostics(
|
|||
// Wait for server to see the diagnostics update.
|
||||
deterministic.run_until_parked();
|
||||
{
|
||||
let store = server.store.read().await;
|
||||
let store = server.store.lock().await;
|
||||
let project = store.project(ProjectId::from_proto(project_id)).unwrap();
|
||||
let worktree = project.worktrees.get(&worktree_id.to_proto()).unwrap();
|
||||
assert!(!worktree.diagnostic_summaries.is_empty());
|
||||
|
@ -1517,6 +1516,7 @@ async fn test_collaborating_with_diagnostics(
|
|||
|
||||
// Join project as client C and observe the diagnostics.
|
||||
let project_c = client_c.build_remote_project(&project_a, cx_a, cx_c).await;
|
||||
deterministic.run_until_parked();
|
||||
project_c.read_with(cx_c, |project, cx| {
|
||||
assert_eq!(
|
||||
project.diagnostic_summaries(cx).collect::<Vec<_>>(),
|
||||
|
@ -3216,7 +3216,7 @@ async fn test_basic_chat(cx_a: &mut TestAppContext, cx_b: &mut TestAppContext) {
|
|||
|
||||
assert_eq!(
|
||||
server
|
||||
.state()
|
||||
.store()
|
||||
.await
|
||||
.channel(channel_id)
|
||||
.unwrap()
|
||||
|
@ -4470,8 +4470,16 @@ async fn test_random_collaboration(
|
|||
let mut server = TestServer::start(cx.foreground(), cx.background()).await;
|
||||
let db = server.app_state.db.clone();
|
||||
let host_user_id = db.create_user("host", None, false).await.unwrap();
|
||||
for username in ["guest-1", "guest-2", "guest-3", "guest-4"] {
|
||||
let mut available_guests = vec![
|
||||
"guest-1".to_string(),
|
||||
"guest-2".to_string(),
|
||||
"guest-3".to_string(),
|
||||
"guest-4".to_string(),
|
||||
];
|
||||
|
||||
for username in &available_guests {
|
||||
let guest_user_id = db.create_user(username, None, false).await.unwrap();
|
||||
assert_eq!(*username, format!("guest-{}", guest_user_id));
|
||||
server
|
||||
.app_state
|
||||
.db
|
||||
|
@ -4665,12 +4673,7 @@ async fn test_random_collaboration(
|
|||
} else {
|
||||
max_operations
|
||||
};
|
||||
let mut available_guests = vec![
|
||||
"guest-1".to_string(),
|
||||
"guest-2".to_string(),
|
||||
"guest-3".to_string(),
|
||||
"guest-4".to_string(),
|
||||
];
|
||||
|
||||
let mut operations = 0;
|
||||
while operations < max_operations {
|
||||
if operations == disconnect_host_at {
|
||||
|
@ -4701,7 +4704,7 @@ async fn test_random_collaboration(
|
|||
.unwrap();
|
||||
let contacts = server
|
||||
.store
|
||||
.read()
|
||||
.lock()
|
||||
.await
|
||||
.build_initial_contacts_update(contacts)
|
||||
.contacts;
|
||||
|
@ -4773,6 +4776,7 @@ async fn test_random_collaboration(
|
|||
server.disconnect_client(removed_guest_id);
|
||||
deterministic.advance_clock(RECEIVE_TIMEOUT);
|
||||
deterministic.start_waiting();
|
||||
log::info!("Waiting for guest {} to exit...", removed_guest_id);
|
||||
let (guest, guest_project, mut guest_cx, guest_err) = guest.await;
|
||||
deterministic.finish_waiting();
|
||||
server.allow_connections();
|
||||
|
@ -4785,7 +4789,7 @@ async fn test_random_collaboration(
|
|||
let contacts = server.app_state.db.get_contacts(*user_id).await.unwrap();
|
||||
let contacts = server
|
||||
.store
|
||||
.read()
|
||||
.lock()
|
||||
.await
|
||||
.build_initial_contacts_update(contacts)
|
||||
.contacts;
|
||||
|
@ -4989,6 +4993,7 @@ impl TestServer {
|
|||
|
||||
Arc::get_mut(&mut client)
|
||||
.unwrap()
|
||||
.set_id(user_id.0 as usize)
|
||||
.override_authenticate(move |cx| {
|
||||
cx.spawn(|_| async move {
|
||||
let access_token = "the-token".to_string();
|
||||
|
@ -5116,10 +5121,6 @@ impl TestServer {
|
|||
})
|
||||
}
|
||||
|
||||
async fn state<'a>(&'a self) -> RwLockReadGuard<'a, Store> {
|
||||
self.server.store.read().await
|
||||
}
|
||||
|
||||
async fn condition<F>(&mut self, mut predicate: F)
|
||||
where
|
||||
F: FnMut(&Store) -> bool,
|
||||
|
@ -5128,7 +5129,7 @@ impl TestServer {
|
|||
self.foreground.parking_forbidden(),
|
||||
"you must call forbid_parking to use server conditions so we don't block indefinitely"
|
||||
);
|
||||
while !(predicate)(&*self.server.store.read().await) {
|
||||
while !(predicate)(&*self.server.store.lock().await) {
|
||||
self.foreground.start_waiting();
|
||||
self.notifications.next().await;
|
||||
self.foreground.finish_waiting();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue