| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | use crate::script::{invalid_workspace_name_test_case, FolderScript::*, FolderTest};
 | 
					
						
							| 
									
										
										
										
											2022-10-22 21:57:44 +08:00
										 |  |  | use flowy_folder::entities::view::ViewDataFormatPB;
 | 
					
						
							| 
									
										
										
										
											2022-07-19 14:11:29 +08:00
										 |  |  | use flowy_folder::entities::workspace::CreateWorkspacePayloadPB;
 | 
					
						
							| 
									
										
										
										
											2023-01-12 13:09:08 +08:00
										 |  |  | use flowy_revision_persistence::RevisionState;
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | use flowy_test::{event_builder::*, FlowySDKTest};
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn workspace_read_all() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   test.run_scripts(vec![ReadAllWorkspaces]).await;
 | 
					
						
							|  |  |  |   assert!(!test.all_workspace.is_empty());
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn workspace_create() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let name = "My new workspace".to_owned();
 | 
					
						
							|  |  |  |   let desc = "Daily routines".to_owned();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![CreateWorkspace {
 | 
					
						
							|  |  |  |       name: name.clone(),
 | 
					
						
							|  |  |  |       desc: desc.clone(),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     }])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let workspace = test.workspace.clone();
 | 
					
						
							|  |  |  |   assert_eq!(workspace.name, name);
 | 
					
						
							|  |  |  |   assert_eq!(workspace.desc, desc);
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       ReadWorkspace(Some(workspace.id.clone())),
 | 
					
						
							|  |  |  |       AssertWorkspace(workspace),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn workspace_read() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let workspace = test.workspace.clone();
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       ReadWorkspace(Some(workspace.id.clone())),
 | 
					
						
							|  |  |  |       AssertWorkspace(workspace),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn workspace_create_with_apps() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![CreateApp {
 | 
					
						
							|  |  |  |       name: "App".to_string(),
 | 
					
						
							|  |  |  |       desc: "App description".to_string(),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     }])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let app = test.app.clone();
 | 
					
						
							|  |  |  |   test.run_scripts(vec![ReadApp(app.id)]).await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn workspace_create_with_invalid_name() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   for (name, code) in invalid_workspace_name_test_case() {
 | 
					
						
							|  |  |  |     let sdk = FlowySDKTest::default();
 | 
					
						
							|  |  |  |     let request = CreateWorkspacePayloadPB {
 | 
					
						
							|  |  |  |       name,
 | 
					
						
							|  |  |  |       desc: "".to_owned(),
 | 
					
						
							|  |  |  |     };
 | 
					
						
							|  |  |  |     assert_eq!(
 | 
					
						
							|  |  |  |       FolderEventBuilder::new(sdk)
 | 
					
						
							|  |  |  |         .event(flowy_folder::event_map::FolderEvent::CreateWorkspace)
 | 
					
						
							|  |  |  |         .payload(request)
 | 
					
						
							|  |  |  |         .async_send()
 | 
					
						
							|  |  |  |         .await
 | 
					
						
							|  |  |  |         .error()
 | 
					
						
							|  |  |  |         .code,
 | 
					
						
							|  |  |  |       code.value()
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |   }
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | #[should_panic]
 | 
					
						
							|  |  |  | async fn app_delete() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let app = test.app.clone();
 | 
					
						
							|  |  |  |   test.run_scripts(vec![DeleteApp, ReadApp(app.id)]).await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | async fn app_delete_then_restore() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let app = test.app.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       DeleteApp,
 | 
					
						
							|  |  |  |       RestoreAppFromTrash,
 | 
					
						
							|  |  |  |       ReadApp(app.id.clone()),
 | 
					
						
							|  |  |  |       AssertApp(app),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  |     .await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn app_read() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let app = test.app.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![ReadApp(app.id.clone()), AssertApp(app)])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn app_update() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let app = test.app.clone();
 | 
					
						
							|  |  |  |   let new_name = "😁 hell world".to_owned();
 | 
					
						
							|  |  |  |   assert_ne!(app.name, new_name);
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       UpdateApp {
 | 
					
						
							|  |  |  |         name: Some(new_name.clone()),
 | 
					
						
							|  |  |  |         desc: None,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReadApp(app.id),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   assert_eq!(test.app.name, new_name);
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn app_create_with_view() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let mut app = test.app.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "View A".to_owned(),
 | 
					
						
							|  |  |  |         desc: "View A description".to_owned(),
 | 
					
						
							|  |  |  |         data_type: ViewDataFormatPB::DeltaFormat,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "Grid".to_owned(),
 | 
					
						
							|  |  |  |         desc: "Grid description".to_owned(),
 | 
					
						
							|  |  |  |         data_type: ViewDataFormatPB::DatabaseFormat,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReadApp(app.id),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   app = test.app.clone();
 | 
					
						
							|  |  |  |   assert_eq!(app.belongings.len(), 3);
 | 
					
						
							|  |  |  |   assert_eq!(app.belongings[1].name, "View A");
 | 
					
						
							|  |  |  |   assert_eq!(app.belongings[2].name, "Grid")
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_update() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.view.clone();
 | 
					
						
							|  |  |  |   let new_name = "😁 123".to_owned();
 | 
					
						
							|  |  |  |   assert_ne!(view.name, new_name);
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       UpdateView {
 | 
					
						
							|  |  |  |         name: Some(new_name.clone()),
 | 
					
						
							|  |  |  |         desc: None,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReadView(view.id),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   assert_eq!(test.view.name, new_name);
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | }
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | #[should_panic]
 | 
					
						
							|  |  |  | async fn view_delete() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.view.clone();
 | 
					
						
							|  |  |  |   test.run_scripts(vec![DeleteView, ReadView(view.id)]).await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | async fn view_delete_then_restore() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       DeleteView,
 | 
					
						
							|  |  |  |       RestoreViewFromTrash,
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |       AssertView(view),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  |     .await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_delete_all() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let app = test.app.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "View A".to_owned(),
 | 
					
						
							|  |  |  |         desc: "View A description".to_owned(),
 | 
					
						
							|  |  |  |         data_type: ViewDataFormatPB::DeltaFormat,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "Grid".to_owned(),
 | 
					
						
							|  |  |  |         desc: "Grid description".to_owned(),
 | 
					
						
							|  |  |  |         data_type: ViewDataFormatPB::DatabaseFormat,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReadApp(app.id.clone()),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   assert_eq!(test.app.belongings.len(), 3);
 | 
					
						
							|  |  |  |   let view_ids = test
 | 
					
						
							|  |  |  |     .app
 | 
					
						
							|  |  |  |     .belongings
 | 
					
						
							|  |  |  |     .iter()
 | 
					
						
							|  |  |  |     .map(|view| view.id.clone())
 | 
					
						
							|  |  |  |     .collect::<Vec<String>>();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![DeleteViews(view_ids), ReadApp(app.id), ReadTrash])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   assert_eq!(test.app.belongings.len(), 0);
 | 
					
						
							|  |  |  |   assert_eq!(test.trash.len(), 3);
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_delete_all_permanent() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let app = test.app.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "View A".to_owned(),
 | 
					
						
							|  |  |  |         desc: "View A description".to_owned(),
 | 
					
						
							|  |  |  |         data_type: ViewDataFormatPB::DeltaFormat,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReadApp(app.id.clone()),
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let view_ids = test
 | 
					
						
							|  |  |  |     .app
 | 
					
						
							|  |  |  |     .belongings
 | 
					
						
							|  |  |  |     .iter()
 | 
					
						
							|  |  |  |     .map(|view| view.id.clone())
 | 
					
						
							|  |  |  |     .collect::<Vec<String>>();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       DeleteViews(view_ids),
 | 
					
						
							|  |  |  |       ReadApp(app.id),
 | 
					
						
							|  |  |  |       DeleteAllTrash,
 | 
					
						
							|  |  |  |       ReadTrash,
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   assert_eq!(test.app.belongings.len(), 0);
 | 
					
						
							|  |  |  |   assert_eq!(test.trash.len(), 0);
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | }
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn folder_sync_revision_state() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       AssertRevisionState {
 | 
					
						
							|  |  |  |         rev_id: 1,
 | 
					
						
							|  |  |  |         state: RevisionState::Sync,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       AssertNextSyncRevId(Some(1)),
 | 
					
						
							|  |  |  |       AssertRevisionState {
 | 
					
						
							|  |  |  |         rev_id: 1,
 | 
					
						
							|  |  |  |         state: RevisionState::Ack,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn folder_sync_revision_seq() {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       AssertRevisionState {
 | 
					
						
							|  |  |  |         rev_id: 1,
 | 
					
						
							|  |  |  |         state: RevisionState::Sync,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       AssertRevisionState {
 | 
					
						
							|  |  |  |         rev_id: 2,
 | 
					
						
							|  |  |  |         state: RevisionState::Sync,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       AssertNextSyncRevId(Some(1)),
 | 
					
						
							|  |  |  |       AssertNextSyncRevId(Some(2)),
 | 
					
						
							|  |  |  |       AssertRevisionState {
 | 
					
						
							|  |  |  |         rev_id: 1,
 | 
					
						
							|  |  |  |         state: RevisionState::Ack,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       AssertRevisionState {
 | 
					
						
							|  |  |  |         rev_id: 2,
 | 
					
						
							|  |  |  |         state: RevisionState::Ack,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2022-01-22 18:48:43 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2022-01-19 16:00:11 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-07 20:22:08 +08:00
										 |  |  | // #[tokio::test]
 | 
					
						
							|  |  |  | // async fn folder_sync_revision_with_new_app() {
 | 
					
						
							|  |  |  | //     let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  | //     let app_name = "AppFlowy contributors".to_owned();
 | 
					
						
							|  |  |  | //     let app_desc = "Welcome to be a AppFlowy contributor".to_owned();
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //     test.run_scripts(vec![
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(Some(1)),
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(Some(2)),
 | 
					
						
							|  |  |  | //         CreateApp {
 | 
					
						
							|  |  |  | //             name: app_name.clone(),
 | 
					
						
							|  |  |  | //             desc: app_desc.clone(),
 | 
					
						
							|  |  |  | //         },
 | 
					
						
							|  |  |  | //         AssertCurrentRevId(3),
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(Some(3)),
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(None),
 | 
					
						
							|  |  |  | //     ])
 | 
					
						
							|  |  |  | //     .await;
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //     let app = test.app.clone();
 | 
					
						
							|  |  |  | //     assert_eq!(app.name, app_name);
 | 
					
						
							|  |  |  | //     assert_eq!(app.desc, app_desc);
 | 
					
						
							|  |  |  | //     test.run_scripts(vec![ReadApp(app.id.clone()), AssertApp(app)]).await;
 | 
					
						
							|  |  |  | // }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // #[tokio::test]
 | 
					
						
							|  |  |  | // async fn folder_sync_revision_with_new_view() {
 | 
					
						
							|  |  |  | //     let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  | //     let view_name = "AppFlowy features".to_owned();
 | 
					
						
							|  |  |  | //     let view_desc = "😁".to_owned();
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //     test.run_scripts(vec![
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(Some(1)),
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(Some(2)),
 | 
					
						
							|  |  |  | //         CreateView {
 | 
					
						
							|  |  |  | //             name: view_name.clone(),
 | 
					
						
							|  |  |  | //             desc: view_desc.clone(),
 | 
					
						
							|  |  |  | //             data_type: ViewDataFormatPB::DeltaFormat,
 | 
					
						
							|  |  |  | //         },
 | 
					
						
							|  |  |  | //         AssertCurrentRevId(3),
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(Some(3)),
 | 
					
						
							|  |  |  | //         AssertNextSyncRevId(None),
 | 
					
						
							|  |  |  | //     ])
 | 
					
						
							|  |  |  | //     .await;
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | //     let view = test.view.clone();
 | 
					
						
							|  |  |  | //     assert_eq!(view.name, view_name);
 | 
					
						
							|  |  |  | //     test.run_scripts(vec![ReadView(view.id.clone()), AssertView(view)])
 | 
					
						
							|  |  |  | //         .await;
 | 
					
						
							|  |  |  | // }
 |