| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | 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;}
 |