edit_test.rs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. use std::time::Duration;
  2. use flowy_document2::entities::DocumentSyncStatePB;
  3. use flowy_test::assert_document_data_equal;
  4. use crate::document::af_cloud_test::util::AFCloudDocumentTest;
  5. use crate::util::receive_with_timeout;
  6. #[tokio::test]
  7. async fn af_cloud_edit_document_test() {
  8. if let Some(test) = AFCloudDocumentTest::new().await {
  9. let document_id = test.create_document().await;
  10. let cloned_test = test.clone();
  11. let cloned_document_id = document_id.clone();
  12. tokio::spawn(async move {
  13. cloned_test
  14. .insert_document_text(&cloned_document_id, "hello world", 0)
  15. .await;
  16. });
  17. // wait all update are send to the remote
  18. let mut rx = test
  19. .notification_sender
  20. .subscribe_with_condition::<DocumentSyncStatePB, _>(&document_id, |pb| pb.is_finish);
  21. receive_with_timeout(&mut rx, Duration::from_secs(15))
  22. .await
  23. .unwrap();
  24. let document_data = test.get_document_data(&document_id).await;
  25. let update = test.get_document_update(&document_id).await;
  26. assert!(!update.is_empty());
  27. assert_document_data_equal(&update, &document_id, document_data);
  28. }
  29. }