| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 | use crate::new_document::script::DocumentEditorTest;use crate::new_document::script::EditScript::*;use lib_ot::text_delta::DeltaTextOperationBuilder;#[tokio::test]async fn document_initialize_test() {  let scripts = vec![AssertContent {    expected: r#"{"document":{"type":"editor","children":[{"type":"text"}]}}"#,  }];  DocumentEditorTest::new().await.run_scripts(scripts).await;}#[tokio::test]async fn document_insert_text_test() {  let delta = DeltaTextOperationBuilder::new()    .insert("Hello world")    .build();  let expected = r#"{  "document": {    "type": "editor",    "children": [      {        "type": "text",        "delta": [          {            "insert": "Hello world"          }        ]      },      {        "type": "text"      }    ]  }}"#;  let scripts = vec![    InsertText {      path: vec![0, 0].into(),      delta,    },    AssertPrettyContent { expected },  ];  DocumentEditorTest::new().await.run_scripts(scripts).await;}#[tokio::test]async fn document_update_text_test() {  let test = DocumentEditorTest::new().await;  let hello_world = "Hello world".to_string();  let scripts = vec![    UpdateText {      path: vec![0, 0].into(),      delta: DeltaTextOperationBuilder::new()        .insert(&hello_world)        .build(),    },    AssertPrettyContent {      expected: r#"{  "document": {    "type": "editor",    "children": [      {        "type": "text",        "delta": [          {            "insert": "Hello world"          }        ]      }    ]  }}"#,    },  ];  test.run_scripts(scripts).await;  let scripts = vec![    UpdateText {      path: vec![0, 0].into(),      delta: DeltaTextOperationBuilder::new()        .retain(hello_world.len())        .insert(", AppFlowy")        .build(),    },    AssertPrettyContent {      expected: r#"{  "document": {    "type": "editor",    "children": [      {        "type": "text",        "delta": [          {            "insert": "Hello world, AppFlowy"          }        ]      }    ]  }}"#,    },  ];  test.run_scripts(scripts).await;}#[tokio::test]async fn document_delete_text_test() {  let expected = r#"{  "document": {    "type": "editor",    "children": [      {        "type": "text",        "delta": [          {            "insert": "Hello"          }        ]      }    ]  }}"#;  let hello_world = "Hello world".to_string();  let scripts = vec![    UpdateText {      path: vec![0, 0].into(),      delta: DeltaTextOperationBuilder::new()        .insert(&hello_world)        .build(),    },    UpdateText {      path: vec![0, 0].into(),      delta: DeltaTextOperationBuilder::new().retain(5).delete(6).build(),    },    AssertPrettyContent { expected },  ];  DocumentEditorTest::new().await.run_scripts(scripts).await;}#[tokio::test]async fn document_delete_node_test() {  let scripts = vec![    UpdateText {      path: vec![0, 0].into(),      delta: DeltaTextOperationBuilder::new()        .insert("Hello world")        .build(),    },    AssertContent {      expected: r#"{"document":{"type":"editor","children":[{"type":"text","delta":[{"insert":"Hello world"}]}]}}"#,    },    Delete {      path: vec![0, 0].into(),    },    AssertContent {      expected: r#"{"document":{"type":"editor"}}"#,    },  ];  DocumentEditorTest::new().await.run_scripts(scripts).await;}
 |