| 
									
										
										
										
											2023-11-01 11:45:35 +08:00
										 |  |  | use collab_folder::ViewLayout;
 | 
					
						
							| 
									
										
										
										
											2023-10-11 20:02:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:14 +08:00
										 |  |  | use flowy_folder2::entities::icon::{ViewIconPB, ViewIconTypePB};
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-11 20:02:09 +08:00
										 |  |  | use crate::folder::local_test::script::FolderScript::*;
 | 
					
						
							|  |  |  | use crate::folder::local_test::script::FolderTest;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  | #[tokio::test]
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  | async fn create_parent_view_test() {
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   test
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |     .run_scripts(vec![CreateParentView {
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |       name: "App".to_string(),
 | 
					
						
							|  |  |  |       desc: "App description".to_string(),
 | 
					
						
							|  |  |  |     }])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let app = test.parent_view.clone();
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |   test.run_scripts(vec![ReloadParentView(app.id)]).await;
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | #[should_panic]
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  | async fn delete_parent_view_test() {
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |   let parent_view = test.parent_view.clone();
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   test
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |     .run_scripts(vec![DeleteParentView, ReloadParentView(parent_view.id)])
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     .await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  | async fn delete_parent_view_then_restore() {
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   test
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |     .run_scripts(vec![ReloadParentView(test.parent_view.id.clone())])
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let parent_view = test.parent_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       DeleteParentView,
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |       RestoreAppFromTrash,
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       ReloadParentView(parent_view.id.clone()),
 | 
					
						
							|  |  |  |       AssertParentView(parent_view),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  | async fn update_parent_view_test() {
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |   let parent_view = test.parent_view.clone();
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   let new_name = "😁 hell world".to_owned();
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |   assert_ne!(parent_view.name, new_name);
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       UpdateParentView {
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |         name: Some(new_name.clone()),
 | 
					
						
							|  |  |  |         desc: None,
 | 
					
						
							| 
									
										
										
										
											2023-08-02 18:50:51 +05:30
										 |  |  |         is_favorite: None,
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       ReloadParentView(parent_view.id),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  |   assert_eq!(test.parent_view.name, new_name);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn app_create_with_view() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let mut app = test.parent_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "View A".to_owned(),
 | 
					
						
							|  |  |  |         desc: "View A description".to_owned(),
 | 
					
						
							|  |  |  |         layout: ViewLayout::Document,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "Grid".to_owned(),
 | 
					
						
							|  |  |  |         desc: "Grid description".to_owned(),
 | 
					
						
							|  |  |  |         layout: ViewLayout::Grid,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       ReloadParentView(app.id),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   app = test.parent_view.clone();
 | 
					
						
							| 
									
										
										
										
											2023-05-10 19:43:32 +08:00
										 |  |  |   assert_eq!(app.child_views.len(), 3);
 | 
					
						
							|  |  |  |   assert_eq!(app.child_views[1].name, "View A");
 | 
					
						
							|  |  |  |   assert_eq!(app.child_views[2].name, "Grid")
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_update() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.child_view.clone();
 | 
					
						
							|  |  |  |   let new_name = "😁 123".to_owned();
 | 
					
						
							|  |  |  |   assert_ne!(view.name, new_name);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       UpdateView {
 | 
					
						
							|  |  |  |         name: Some(new_name.clone()),
 | 
					
						
							|  |  |  |         desc: None,
 | 
					
						
							| 
									
										
										
										
											2023-08-02 18:50:51 +05:30
										 |  |  |         is_favorite: None,
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |       },
 | 
					
						
							|  |  |  |       ReadView(view.id),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  |   assert_eq!(test.child_view.name, new_name);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:14 +08:00
										 |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_icon_update_test() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.child_view.clone();
 | 
					
						
							|  |  |  |   let new_icon = ViewIconPB {
 | 
					
						
							|  |  |  |     ty: ViewIconTypePB::Emoji,
 | 
					
						
							|  |  |  |     value: "👍".to_owned(),
 | 
					
						
							|  |  |  |   };
 | 
					
						
							|  |  |  |   assert!(view.icon.is_none());
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       UpdateViewIcon {
 | 
					
						
							|  |  |  |         icon: Some(new_icon.clone()),
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   assert_eq!(test.child_view.icon, Some(new_icon));
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![UpdateViewIcon { icon: None }, ReadView(view.id)])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  |   assert_eq!(test.child_view.icon, None);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | #[should_panic]
 | 
					
						
							|  |  |  | async fn view_delete() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.child_view.clone();
 | 
					
						
							|  |  |  |   test.run_scripts(vec![DeleteView, ReadView(view.id)]).await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_delete_then_restore() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.child_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       DeleteView,
 | 
					
						
							|  |  |  |       RestoreViewFromTrash,
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |       AssertView(view),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_delete_all() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let parent_view = test.parent_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "View A".to_owned(),
 | 
					
						
							|  |  |  |         desc: "View A description".to_owned(),
 | 
					
						
							|  |  |  |         layout: ViewLayout::Document,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "Grid".to_owned(),
 | 
					
						
							|  |  |  |         desc: "Grid description".to_owned(),
 | 
					
						
							|  |  |  |         layout: ViewLayout::Grid,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       ReloadParentView(parent_view.id.clone()),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   assert_eq!(
 | 
					
						
							| 
									
										
										
										
											2023-05-10 19:43:32 +08:00
										 |  |  |     test.parent_view.child_views.len(),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     3,
 | 
					
						
							|  |  |  |     "num of belongings should be 3"
 | 
					
						
							|  |  |  |   );
 | 
					
						
							|  |  |  |   let view_ids = test
 | 
					
						
							|  |  |  |     .parent_view
 | 
					
						
							| 
									
										
										
										
											2023-05-10 19:43:32 +08:00
										 |  |  |     .child_views
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     .iter()
 | 
					
						
							|  |  |  |     .map(|view| view.id.clone())
 | 
					
						
							|  |  |  |     .collect::<Vec<String>>();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       DeleteViews(view_ids),
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       ReloadParentView(parent_view.id),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |       ReadTrash,
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-10 19:43:32 +08:00
										 |  |  |   assert_eq!(test.parent_view.child_views.len(), 0);
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   assert_eq!(test.trash.len(), 3);
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn view_delete_all_permanent() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |   let parent_view = test.parent_view.clone();
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "View A".to_owned(),
 | 
					
						
							|  |  |  |         desc: "View A description".to_owned(),
 | 
					
						
							|  |  |  |         layout: ViewLayout::Document,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       ReloadParentView(parent_view.id.clone()),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let view_ids = test
 | 
					
						
							|  |  |  |     .parent_view
 | 
					
						
							| 
									
										
										
										
											2023-05-10 19:43:32 +08:00
										 |  |  |     .child_views
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |     .iter()
 | 
					
						
							|  |  |  |     .map(|view| view.id.clone())
 | 
					
						
							|  |  |  |     .collect::<Vec<String>>();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       DeleteViews(view_ids),
 | 
					
						
							| 
									
										
										
										
											2023-06-05 13:10:14 +08:00
										 |  |  |       ReloadParentView(parent_view.id),
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |       DeleteAllTrash,
 | 
					
						
							|  |  |  |       ReadTrash,
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-10 19:43:32 +08:00
										 |  |  |   assert_eq!(test.parent_view.child_views.len(), 0);
 | 
					
						
							| 
									
										
										
										
											2023-04-04 08:41:16 +08:00
										 |  |  |   assert_eq!(test.trash.len(), 0);
 | 
					
						
							|  |  |  | }
 | 
					
						
							| 
									
										
										
										
											2023-07-26 16:49:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-02 18:50:51 +05:30
										 |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn toggle_favorites() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.child_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |       ToggleFavorite,
 | 
					
						
							|  |  |  |       ReadFavorites,
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:14 +08:00
										 |  |  |   assert!(test.child_view.is_favorite);
 | 
					
						
							|  |  |  |   assert_ne!(test.favorites.len(), 0);
 | 
					
						
							| 
									
										
										
										
											2023-08-02 18:50:51 +05:30
										 |  |  |   assert_eq!(test.favorites[0].id, view.id);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let view = test.child_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |       ToggleFavorite,
 | 
					
						
							|  |  |  |       ReadFavorites,
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   assert!(!test.child_view.is_favorite);
 | 
					
						
							|  |  |  |   assert!(test.favorites.is_empty());
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn delete_favorites() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let view = test.child_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |       ToggleFavorite,
 | 
					
						
							|  |  |  |       ReadFavorites,
 | 
					
						
							|  |  |  |       ReadView(view.id.clone()),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:14 +08:00
										 |  |  |   assert!(test.child_view.is_favorite);
 | 
					
						
							|  |  |  |   assert_ne!(test.favorites.len(), 0);
 | 
					
						
							| 
									
										
										
										
											2023-08-02 18:50:51 +05:30
										 |  |  |   assert_eq!(test.favorites[0].id, view.id);
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   test.run_scripts(vec![DeleteView, ReadFavorites]).await;
 | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:14 +08:00
										 |  |  |   assert_eq!(test.favorites.len(), 0);
 | 
					
						
							| 
									
										
										
										
											2023-08-02 18:50:51 +05:30
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-26 16:49:50 +08:00
										 |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn move_view_event_test() {
 | 
					
						
							|  |  |  |   let mut test = FolderTest::new().await;
 | 
					
						
							|  |  |  |   let parent_view = test.parent_view.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       CreateView {
 | 
					
						
							|  |  |  |         name: "View A".to_owned(),
 | 
					
						
							|  |  |  |         desc: "View A description".to_owned(),
 | 
					
						
							|  |  |  |         layout: ViewLayout::Document,
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReloadParentView(parent_view.id.clone()),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  |   let view_ids = test
 | 
					
						
							|  |  |  |     .parent_view
 | 
					
						
							|  |  |  |     .child_views
 | 
					
						
							|  |  |  |     .iter()
 | 
					
						
							|  |  |  |     .map(|view| view.id.clone())
 | 
					
						
							|  |  |  |     .collect::<Vec<String>>();
 | 
					
						
							|  |  |  |   let move_view_id = view_ids[0].clone();
 | 
					
						
							|  |  |  |   let new_prev_view_id = view_ids[1].clone();
 | 
					
						
							|  |  |  |   let new_parent_view_id = parent_view.id.clone();
 | 
					
						
							|  |  |  |   test
 | 
					
						
							|  |  |  |     .run_scripts(vec![
 | 
					
						
							|  |  |  |       MoveView {
 | 
					
						
							|  |  |  |         view_id: move_view_id.clone(),
 | 
					
						
							|  |  |  |         new_parent_id: new_parent_view_id.clone(),
 | 
					
						
							|  |  |  |         prev_view_id: Some(new_prev_view_id.clone()),
 | 
					
						
							|  |  |  |       },
 | 
					
						
							|  |  |  |       ReloadParentView(parent_view.id.clone()),
 | 
					
						
							|  |  |  |     ])
 | 
					
						
							|  |  |  |     .await;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   let after_view_ids = test
 | 
					
						
							|  |  |  |     .parent_view
 | 
					
						
							|  |  |  |     .child_views
 | 
					
						
							|  |  |  |     .iter()
 | 
					
						
							|  |  |  |     .map(|view| view.id.clone())
 | 
					
						
							|  |  |  |     .collect::<Vec<String>>();
 | 
					
						
							|  |  |  |   assert_eq!(after_view_ids[0], view_ids[1]);
 | 
					
						
							|  |  |  |   assert_eq!(after_view_ids[1], view_ids[0]);
 | 
					
						
							|  |  |  | }
 |