revision_test.rs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. use flowy_test::doc_script::{EditorScript::*, *};
  2. use lib_ot::revision::RevState;
  3. #[tokio::test]
  4. async fn doc_sync_test() {
  5. let scripts = vec![
  6. InsertText("1", 0),
  7. InsertText("2", 1),
  8. InsertText("3", 2),
  9. AssertJson(r#"[{"insert":"123\n"}]"#),
  10. AssertNextRevId(None),
  11. ];
  12. EditorTest::new().await.run_scripts(scripts).await;
  13. }
  14. #[tokio::test]
  15. async fn doc_sync_lost_ws_conn() {
  16. let scripts = vec![
  17. InsertText("1", 0),
  18. StopWs,
  19. InsertText("2", 1),
  20. InsertText("3", 2),
  21. AssertNextRevId(Some(2)),
  22. AssertJson(r#"[{"insert":"123\n"}]"#),
  23. ];
  24. EditorTest::new().await.run_scripts(scripts).await;
  25. }
  26. #[tokio::test]
  27. async fn doc_sync_retry_ws_conn() {
  28. let scripts = vec![
  29. InsertText("1", 0),
  30. StopWs,
  31. InsertText("2", 1),
  32. InsertText("3", 2),
  33. StartWs,
  34. WaitSyncFinished,
  35. AssertRevisionState(2, RevState::Acked),
  36. AssertRevisionState(3, RevState::Acked),
  37. AssertNextRevId(None),
  38. AssertJson(r#"[{"insert":"123\n"}]"#),
  39. ];
  40. EditorTest::new().await.run_scripts(scripts).await;
  41. }