revision_test.rs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. use flowy_test::editor::{EditorScript::*, *};
  2. use lib_ot::revision::RevState;
  3. #[tokio::test]
  4. async fn doc_rev_state_test1() {
  5. let scripts = vec![
  6. InsertText("123", 0),
  7. AssertCurrentRevId(1),
  8. AssertRevisionState(1, RevState::Local),
  9. SimulateAckedMessage(1),
  10. AssertRevisionState(1, RevState::Acked),
  11. AssertNextSendingRevision(None),
  12. AssertJson(r#"[{"insert":"123\n"}]"#),
  13. ];
  14. EditorTest::new().await.run_scripts(scripts).await;
  15. }
  16. #[tokio::test]
  17. async fn doc_rev_state_test2() {
  18. let scripts = vec![
  19. InsertText("1", 0),
  20. InsertText("2", 1),
  21. InsertText("3", 2),
  22. AssertCurrentRevId(3),
  23. AssertRevisionState(1, RevState::Local),
  24. AssertRevisionState(2, RevState::Local),
  25. AssertRevisionState(3, RevState::Local),
  26. SimulateAckedMessage(1),
  27. AssertRevisionState(1, RevState::Acked),
  28. AssertNextSendingRevision(Some(2)),
  29. SimulateAckedMessage(2),
  30. AssertRevisionState(2, RevState::Acked),
  31. //
  32. AssertNextSendingRevision(Some(3)),
  33. AssertRevisionState(3, RevState::Local),
  34. AssertJson(r#"[{"insert":"123\n"}]"#),
  35. ];
  36. EditorTest::new().await.run_scripts(scripts).await;
  37. }
  38. #[tokio::test]
  39. async fn doc_push_test() {
  40. // let delta = RichTextDeltaBuilder::new().insert("abc\n").build();
  41. let scripts = vec![
  42. InsertText("1", 0),
  43. InsertText("2", 1),
  44. InsertText("3", 2),
  45. AssertJson(r#"[{"insert":"123\nabc\n"}]"#),
  46. ];
  47. EditorTest::new().await.run_scripts(scripts).await;
  48. }
  49. #[tokio::test]
  50. async fn doc_sync_test() {
  51. let scripts = vec![
  52. InsertText("1", 0),
  53. InsertText("2", 1),
  54. InsertText("3", 2),
  55. AssertJson(r#"[{"insert":"123\n"}]"#),
  56. ];
  57. EditorTest::new().await.run_scripts(scripts).await;
  58. }