diff --git a/services/appflowy-collaborate/src/group/group_init.rs b/services/appflowy-collaborate/src/group/group_init.rs index 61ff961e..74a5c8ac 100644 --- a/services/appflowy-collaborate/src/group/group_init.rs +++ b/services/appflowy-collaborate/src/group/group_init.rs @@ -273,7 +273,7 @@ impl CollabGroup { let message = AwarenessSync::new( state.object_id.clone(), Message::Awareness(update.data).encode_v1(), - sender.clone(), + CollabOrigin::Empty, ); for mut e in state.subscribers.iter_mut() { let subscription = e.value_mut(); diff --git a/tests/collab/awareness_test.rs b/tests/collab/awareness_test.rs index 169f1cdd..66eb9f96 100644 --- a/tests/collab/awareness_test.rs +++ b/tests/collab/awareness_test.rs @@ -24,7 +24,7 @@ async fn viewing_document_editing_users_test() { let owner_uid = owner.uid().await; let clients = owner.get_connect_users(&object_id).await; - assert_eq!(clients.len(), 1); + assert_eq!(clients.len(), 1, "guest shouldn't be connected yet"); assert_eq!(clients[0], owner_uid); owner @@ -39,6 +39,7 @@ async fn viewing_document_editing_users_test() { .open_collab(&workspace_id, &object_id, collab_type) .await; guest.wait_object_sync_complete(&object_id).await.unwrap(); + sleep(Duration::from_secs(1)).await; // after guest open the collab, it will emit an awareness that contains the user id of guest. // This awareness will be sent to the server. Server will broadcast the awareness to all the clients @@ -50,7 +51,7 @@ async fn viewing_document_editing_users_test() { let mut expected_clients = [owner_uid, guest_uid]; expected_clients.sort(); - assert_eq!(clients.len(), 2); + assert_eq!(clients.len(), 2, "expected owner and member connected"); assert_eq!(clients, expected_clients); // simulate the guest close the collab guest.clean_awareness_state(&object_id).await; @@ -58,7 +59,7 @@ async fn viewing_document_editing_users_test() { sleep(Duration::from_secs(5)).await; guest.wait_object_sync_complete(&object_id).await.unwrap(); let clients = owner.get_connect_users(&object_id).await; - assert_eq!(clients.len(), 1); + assert_eq!(clients.len(), 1, "expected only owner connected"); assert_eq!(clients[0], owner_uid); // simulate the guest open the collab again diff --git a/tests/collab/stress_test.rs b/tests/collab/stress_test.rs index 5e33b01d..c565aab9 100644 --- a/tests/collab/stress_test.rs +++ b/tests/collab/stress_test.rs @@ -46,7 +46,7 @@ async fn run_multiple_text_edits() { // run test scenario let collab = writer.collabs.get(&object_id).unwrap().collab.clone(); - let expected = test_scenario.execute(collab, 50_000).await; + let expected = test_scenario.execute(collab, 40_000).await; // wait for the writer to complete sync writer.wait_object_sync_complete(&object_id).await.unwrap(); diff --git a/tests/collab/util.rs b/tests/collab/util.rs index 95bed297..6a53585f 100644 --- a/tests/collab/util.rs +++ b/tests/collab/util.rs @@ -134,7 +134,12 @@ impl TestScenario { } pub async fn execute(&self, collab: CollabRef, step_count: usize) -> String { + let mut i = 0; for t in self.txns.iter().take(step_count) { + i += 1; + if i % 10_000 == 0 { + tracing::trace!("Executed {}/{} steps", i, step_count); + } let mut lock = collab.write().await; let collab = lock.borrow_mut(); let mut txn = collab.context.transact_mut();