workspace.rs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. #![allow(clippy::all)]
  2. use crate::util::helper::*;
  3. use flowy_core_data_model::entities::{
  4. app::{AppIdentifier, UpdateAppParams},
  5. trash::{TrashIdentifier, TrashIdentifiers, TrashType},
  6. view::{UpdateViewParams, ViewIdentifier},
  7. workspace::{CreateWorkspaceParams, UpdateWorkspaceParams, WorkspaceIdentifier},
  8. };
  9. #[actix_rt::test]
  10. async fn workspace_create() {
  11. let test = WorkspaceTest::new().await;
  12. tracing::info!("{:?}", test.workspace);
  13. }
  14. #[actix_rt::test]
  15. async fn workspace_read() {
  16. let test = WorkspaceTest::new().await;
  17. let read_params = WorkspaceIdentifier::new(Some(test.workspace.id.clone()));
  18. let repeated_workspace = test.server.read_workspaces(read_params).await;
  19. tracing::info!("{:?}", repeated_workspace);
  20. }
  21. #[actix_rt::test]
  22. async fn workspace_read_with_belongs() {
  23. let test = WorkspaceTest::new().await;
  24. let _ = test.create_app().await;
  25. let _ = test.create_app().await;
  26. let _ = test.create_app().await;
  27. let read_params = WorkspaceIdentifier::new(Some(test.workspace.id.clone()));
  28. let workspaces = test.server.read_workspaces(read_params).await;
  29. let workspace = workspaces.items.first().unwrap();
  30. assert_eq!(workspace.apps.len(), 3);
  31. }
  32. #[actix_rt::test]
  33. async fn workspace_update() {
  34. let test = WorkspaceTest::new().await;
  35. let new_name = "rename workspace name";
  36. let new_desc = "rename workspace description";
  37. let update_params = UpdateWorkspaceParams {
  38. id: test.workspace.id.clone(),
  39. name: Some(new_name.to_string()),
  40. desc: Some(new_desc.to_string()),
  41. };
  42. test.server.update_workspace(update_params).await;
  43. let read_params = WorkspaceIdentifier::new(Some(test.workspace.id.clone()));
  44. let repeated_workspace = test.server.read_workspaces(read_params).await;
  45. let workspace = repeated_workspace.first().unwrap();
  46. assert_eq!(workspace.name, new_name);
  47. assert_eq!(workspace.desc, new_desc);
  48. }
  49. #[actix_rt::test]
  50. async fn workspace_delete() {
  51. let test = WorkspaceTest::new().await;
  52. let delete_params = WorkspaceIdentifier {
  53. workspace_id: Some(test.workspace.id.clone()),
  54. };
  55. let _ = test.server.delete_workspace(delete_params).await;
  56. let read_params = WorkspaceIdentifier::new(Some(test.workspace.id.clone()));
  57. let repeated_workspace = test.server.read_workspaces(read_params).await;
  58. assert_eq!(repeated_workspace.len(), 0);
  59. }
  60. #[actix_rt::test]
  61. async fn app_create() {
  62. let test = AppTest::new().await;
  63. tracing::info!("{:?}", test.app);
  64. }
  65. #[actix_rt::test]
  66. async fn app_read() {
  67. let test = AppTest::new().await;
  68. let read_params = AppIdentifier::new(&test.app.id);
  69. assert_eq!(test.server.read_app(read_params).await.is_some(), true);
  70. }
  71. #[actix_rt::test]
  72. async fn app_read_with_belongs() {
  73. let test = AppTest::new().await;
  74. let _ = create_test_view(&test.server, &test.app.id).await;
  75. let _ = create_test_view(&test.server, &test.app.id).await;
  76. let read_params = AppIdentifier::new(&test.app.id);
  77. let app = test.server.read_app(read_params).await.unwrap();
  78. assert_eq!(app.belongings.len(), 2);
  79. }
  80. #[actix_rt::test]
  81. async fn app_read_with_belongs_in_trash() {
  82. let test = AppTest::new().await;
  83. let _ = create_test_view(&test.server, &test.app.id).await;
  84. let view = create_test_view(&test.server, &test.app.id).await;
  85. test.server.create_view_trash(&view.id).await;
  86. let read_params = AppIdentifier::new(&test.app.id);
  87. let app = test.server.read_app(read_params).await.unwrap();
  88. assert_eq!(app.belongings.len(), 1);
  89. }
  90. #[actix_rt::test]
  91. async fn app_update() {
  92. let test = AppTest::new().await;
  93. let new_name = "flowy";
  94. let update_params = UpdateAppParams::new(&test.app.id).name(new_name);
  95. test.server.update_app(update_params).await;
  96. let read_params = AppIdentifier::new(&test.app.id);
  97. let app = test.server.read_app(read_params).await.unwrap();
  98. assert_eq!(&app.name, new_name);
  99. }
  100. #[actix_rt::test]
  101. async fn app_delete() {
  102. let test = AppTest::new().await;
  103. let delete_params = AppIdentifier {
  104. app_id: test.app.id.clone(),
  105. };
  106. test.server.delete_app(delete_params).await;
  107. let read_params = AppIdentifier::new(&test.app.id);
  108. assert_eq!(test.server.read_app(read_params).await.is_none(), true);
  109. }
  110. #[actix_rt::test]
  111. async fn view_create() {
  112. let test = ViewTest::new().await;
  113. tracing::info!("{:?}", test.view);
  114. }
  115. #[actix_rt::test]
  116. async fn view_update() {
  117. let test = ViewTest::new().await;
  118. let new_name = "name view name";
  119. // update
  120. let update_params = UpdateViewParams::new(&test.view.id).name(new_name);
  121. test.server.update_view(update_params).await;
  122. // read
  123. let read_params: ViewIdentifier = test.view.id.clone().into();
  124. let view = test.server.read_view(read_params).await.unwrap();
  125. assert_eq!(&view.name, new_name);
  126. }
  127. #[actix_rt::test]
  128. async fn view_delete() {
  129. let test = ViewTest::new().await;
  130. test.server.create_view_trash(&test.view.id).await;
  131. let trash_ids = test
  132. .server
  133. .read_trash()
  134. .await
  135. .items
  136. .into_iter()
  137. .map(|item| item.id)
  138. .collect::<Vec<String>>();
  139. // read
  140. let read_params: ViewIdentifier = test.view.id.clone().into();
  141. // the view can't read from the server. it should be in the trash
  142. assert_eq!(test.server.read_view(read_params).await.is_none(), true);
  143. assert_eq!(trash_ids.contains(&test.view.id), true);
  144. }
  145. #[actix_rt::test]
  146. async fn trash_delete() {
  147. let test = ViewTest::new().await;
  148. test.server.create_view_trash(&test.view.id).await;
  149. let identifier = TrashIdentifier {
  150. id: test.view.id.clone(),
  151. ty: TrashType::View,
  152. };
  153. test.server.delete_view_trash(vec![identifier].into()).await;
  154. assert_eq!(test.server.read_trash().await.is_empty(), true);
  155. }
  156. #[actix_rt::test]
  157. async fn trash_delete_all() {
  158. let test = ViewTest::new().await;
  159. test.server.create_view_trash(&test.view.id).await;
  160. test.server.delete_view_trash(TrashIdentifiers::all()).await;
  161. assert_eq!(test.server.read_trash().await.is_empty(), true);
  162. }
  163. #[actix_rt::test]
  164. async fn workspace_list_read() {
  165. let mut server = spawn_user_server().await;
  166. let token = server.register_user().await.token;
  167. server.user_token = Some(token);
  168. for i in 0..3 {
  169. let params = CreateWorkspaceParams {
  170. name: format!("{} workspace", i),
  171. desc: format!("This is my {} workspace", i),
  172. };
  173. let _ = server.create_workspace(params).await;
  174. }
  175. let read_params = WorkspaceIdentifier::new(None);
  176. let workspaces = server.read_workspaces(read_params).await;
  177. assert_eq!(workspaces.len(), 3);
  178. }