123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- use crate::new_document::script::DocumentEditorTest;
- use crate::new_document::script::EditScript::*;
- use lib_ot::text_delta::TextOperationBuilder;
- #[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 = TextOperationBuilder::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: TextOperationBuilder::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: TextOperationBuilder::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: TextOperationBuilder::new().insert(&hello_world).build(),
- },
- UpdateText {
- path: vec![0, 0].into(),
- delta: TextOperationBuilder::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: TextOperationBuilder::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;
- }
|