edit.rs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. use crate::document::helper::{DocScript, DocumentTest};
  2. use flowy_document::services::doc::{Document, FlowyDoc};
  3. #[actix_rt::test]
  4. async fn sync_doc_insert_text() {
  5. let test = DocumentTest::new().await;
  6. test.run_scripts(vec![
  7. DocScript::ConnectWs,
  8. DocScript::OpenDoc,
  9. DocScript::SendText(0, "abc"),
  10. DocScript::SendText(3, "123"),
  11. DocScript::SendText(6, "efg"),
  12. DocScript::AssertClient(r#"[{"insert":"abc123efg\n"}]"#),
  13. DocScript::AssertServer(r#"[{"insert":"abc123efg\n"}]"#),
  14. ])
  15. .await;
  16. }
  17. #[actix_rt::test]
  18. async fn sync_open_empty_doc_and_sync_from_server() {
  19. let test = DocumentTest::new().await;
  20. let mut document = Document::new::<FlowyDoc>();
  21. document.insert(0, "123").unwrap();
  22. document.insert(3, "456").unwrap();
  23. let json = document.to_json();
  24. test.run_scripts(vec![
  25. DocScript::SetServerDocument(json, 3),
  26. DocScript::OpenDoc,
  27. DocScript::AssertClient(r#"[{"insert":"123456\n"}]"#),
  28. DocScript::AssertServer(r#"[{"insert":"123456\n"}]"#),
  29. ])
  30. .await;
  31. }
  32. #[actix_rt::test]
  33. async fn sync_open_empty_doc_and_sync_from_server_using_ws() {
  34. let test = DocumentTest::new().await;
  35. let mut document = Document::new::<FlowyDoc>();
  36. document.insert(0, "123").unwrap();
  37. let json = document.to_json();
  38. test.run_scripts(vec![
  39. DocScript::OpenDoc,
  40. DocScript::SetServerDocument(json, 3),
  41. DocScript::ConnectWs,
  42. DocScript::AssertClient(r#"[{"insert":"\n123\n"}]"#),
  43. ])
  44. .await;
  45. }
  46. #[actix_rt::test]
  47. async fn sync_open_non_empty_doc_and_sync_with_sever() {
  48. let test = DocumentTest::new().await;
  49. let mut document = Document::new::<FlowyDoc>();
  50. document.insert(0, "123").unwrap();
  51. let json = document.to_json();
  52. test.run_scripts(vec![
  53. DocScript::OpenDoc,
  54. DocScript::SetServerDocument(json, 3),
  55. DocScript::SendText(0, "abc"),
  56. DocScript::ConnectWs,
  57. DocScript::AssertClient(r#"[{"insert":"abc\n123\n"}]"#),
  58. DocScript::AssertServer(r#"[{"insert":"abc\n123\n"}]"#),
  59. ])
  60. .await;
  61. }