workspace.rs 6.5 KB

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