diff --git a/libs/client-api/src/http_view.rs b/libs/client-api/src/http_view.rs index 61177a8d..1bf56e7b 100644 --- a/libs/client-api/src/http_view.rs +++ b/libs/client-api/src/http_view.rs @@ -27,7 +27,7 @@ impl Client { pub async fn move_workspace_page_view_to_trash( &self, workspace_id: Uuid, - view_id: String, + view_id: &str, ) -> Result<(), AppResponseError> { let url = format!( "{}/api/workspace/{}/page-view/{}/move-to-trash", diff --git a/src/biz/workspace/page_view.rs b/src/biz/workspace/page_view.rs index 833fe951..32f22dc4 100644 --- a/src/biz/workspace/page_view.rs +++ b/src/biz/workspace/page_view.rs @@ -553,9 +553,13 @@ async fn move_view_to_trash(view_id: &str, folder: &mut Folder) -> Result>(); + assert!(views_in_trash_for_app.contains(&general_space.view_id)); + for view in general_space.children.iter() { + assert!(!views_in_trash_for_app.contains(&view.view_id)); + } + let views_in_trash_for_web = web_client + .api_client + .get_workspace_trash(&workspace_id) + .await + .unwrap() + .views + .iter() + .map(|v| v.view.view_id.clone()) + .collect::>(); + assert!(views_in_trash_for_web.contains(&general_space.view_id)); + + web_client + .api_client + .restore_workspace_page_view_from_trash( + Uuid::parse_str(&workspace_id).unwrap(), + &general_space.view_id, + ) + .await + .unwrap(); + let folder = get_latest_folder(&app_client, &workspace_id).await; + assert!(!folder + .get_my_trash_sections() + .iter() + .any(|v| v.id == general_space.view_id)); + let view_found = web_client + .api_client + .get_workspace_trash(&workspace_id) + .await + .unwrap() + .views + .iter() + .any(|v| v.view.view_id == general_space.view_id); + assert!(!view_found); +} + #[tokio::test] async fn update_page() { let registered_user = generate_unique_registered_user().await;