Lucas.Xu 2ef72f3203
feat: load the readme file when first time launch (#2676)
* chore: bump version 0.2.0

* test: add migration test

* feat: support exporting document data to afdoc format (#2610)

* feat: support exporting document data to afdoc format

* feat: export database

* fix: resolve comment issues

* fix: add error tips when exporting files failed

---------

Co-authored-by: nathan <nathan@appflowy.io>

* feat: rename delta

* feat: add built-in readme

* fix: use independent children id

* fix: comment typo

* chore: add icons

* fix: floating toolbar style

* fix: markdown export test

* chore: disbale moveup/movedown action

* fix: unit test

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-06-01 20:18:40 +08:00

104 lines
2.4 KiB
Rust

use flowy_document2::parser::json::parser::JsonToDocumentParser;
use serde_json::json;
#[test]
fn test_parser_children_in_order() {
let json = json!({
"type": "page",
"children": [
{
"type": "paragraph1",
},
{
"type": "paragraph2",
},
{
"type": "paragraph3",
},
{
"type": "paragraph4",
}
]
});
let document = JsonToDocumentParser::json_str_to_document(json.to_string().as_str()).unwrap();
// root + 4 paragraphs
assert_eq!(document.blocks.len(), 5);
// root + 4 paragraphs
assert_eq!(document.meta.children_map.len(), 5);
let (page_id, page_block) = document
.blocks
.iter()
.find(|(_, block)| block.ty == "page")
.unwrap();
// the children should be in order
let page_children = document
.meta
.children_map
.get(page_block.children_id.as_str())
.unwrap();
assert_eq!(page_children.children.len(), 4);
for (i, child_id) in page_children.children.iter().enumerate() {
let child = document.blocks.get(child_id).unwrap();
assert_eq!(child.ty, format!("paragraph{}", i + 1));
assert_eq!(child.parent_id, page_id.to_owned());
}
}
#[test]
fn test_parser_nested_children() {
let json = json!({
"type": "page",
"children": [
{
"type": "paragraph",
"children": [
{
"type": "paragraph",
"children": [
{
"type": "paragraph",
"children": [
{
"type": "paragraph"
}
]
}
]
}
]
}
]
});
let document = JsonToDocumentParser::json_str_to_document(json.to_string().as_str()).unwrap();
// root + 4 paragraphs
assert_eq!(document.blocks.len(), 5);
// root + 4 paragraphs
assert_eq!(document.meta.children_map.len(), 5);
let (page_id, page_block) = document
.blocks
.iter()
.find(|(_, block)| block.ty == "page")
.unwrap();
// first child of root is a paragraph
let page_children = document
.meta
.children_map
.get(page_block.children_id.as_str())
.unwrap();
assert_eq!(page_children.children.len(), 1);
let page_first_child_id = page_children.children.first().unwrap();
let page_first_child = document.blocks.get(page_first_child_id).unwrap();
assert_eq!(page_first_child.ty, "paragraph");
assert_eq!(page_first_child.parent_id, page_id.to_owned());
}