AppFlowy-Cloud/tests/yrs_version/folder_test.rs

55 lines
1.8 KiB
Rust

use collab::core::origin::CollabOrigin;
use collab::entity::EncodedCollab;
use collab_folder::Folder;
use crate::yrs_version::util::read_bytes_from_file;
/// Load collaboration data that was encoded using Yjs version 0.17.
/// folder structure:
/// favorite: document3
/// person-document2
/// person-document1
/// - person-document1-1
/// - person-document1-2
/// Getting started
/// - document1
/// - document2
/// - document3
///
#[test]
fn load_yrs_0172_version_folder_using_current_yrs_version() {
let data = read_bytes_from_file("folder_encode_collab_0172");
let encode_collab = EncodedCollab::decode_from_bytes(&data).unwrap();
let folder = Folder::from_collab_doc_state(
322319512080748544,
CollabOrigin::Empty,
encode_collab.into(),
"fake_id", // just use fake id
vec![],
)
.unwrap();
let workspace_id = folder.get_workspace_id().unwrap();
let views = folder.get_views_belong_to(&workspace_id);
assert_eq!(views.len(), 3);
assert_eq!(views[0].name, "person-document2");
assert_eq!(views[1].name, "person-document1");
assert_eq!(views[2].name, "Getting started");
let view_1_sub_views = folder.get_views_belong_to(&views[1].id);
assert_eq!(view_1_sub_views.len(), 2);
assert_eq!(view_1_sub_views[0].name, "person-document1-1");
assert_eq!(view_1_sub_views[1].name, "person-document1-2");
let view_2_sub_views = folder.get_views_belong_to(&views[2].id);
assert_eq!(view_2_sub_views.len(), 3);
assert_eq!(view_2_sub_views[0].name, "document1");
assert_eq!(view_2_sub_views[1].name, "document2");
assert_eq!(view_2_sub_views[2].name, "document3");
let favorite_section_items = folder.get_my_favorite_sections();
assert_eq!(favorite_section_items.len(), 1);
assert_eq!(view_2_sub_views[2].id, favorite_section_items[0].id);
}