workspace.rs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. use crate::helper::{spawn_app, TestApp};
  2. use flowy_workspace::entities::{
  3. app::{App, ColorStyle, CreateAppParams, DeleteAppParams, QueryAppParams, UpdateAppParams},
  4. view::{CreateViewParams, DeleteViewParams, QueryViewParams, UpdateViewParams, View, ViewType},
  5. workspace::{
  6. CreateWorkspaceParams,
  7. DeleteWorkspaceParams,
  8. QueryWorkspaceParams,
  9. UpdateWorkspaceParams,
  10. Workspace,
  11. },
  12. };
  13. #[actix_rt::test]
  14. async fn workspace_create() {
  15. let app = spawn_app().await;
  16. let (workspace, _) = create_test_workspace(&app).await;
  17. log::info!("{:?}", workspace);
  18. }
  19. #[actix_rt::test]
  20. async fn workspace_read() {
  21. let app = spawn_app().await;
  22. let (workspace_1, _) = create_test_workspace(&app).await;
  23. let read_params = QueryWorkspaceParams {
  24. workspace_id: workspace_1.id.clone(),
  25. read_apps: false,
  26. };
  27. log::info!("{:?}", app.read_workspace(read_params).await.unwrap());
  28. }
  29. #[actix_rt::test]
  30. async fn workspace_update() {
  31. let app = spawn_app().await;
  32. let (workspace_1, _) = create_test_workspace(&app).await;
  33. let update_params = UpdateWorkspaceParams {
  34. id: workspace_1.id.clone(),
  35. name: Some("workspace 2".to_string()),
  36. desc: Some("rename workspace description".to_string()),
  37. };
  38. app.update_workspace(update_params).await;
  39. let read_params = QueryWorkspaceParams {
  40. workspace_id: workspace_1.id.clone(),
  41. read_apps: false,
  42. };
  43. let workspace_2 = app.read_workspace(read_params).await.unwrap();
  44. log::info!("{:?}", workspace_2);
  45. }
  46. #[actix_rt::test]
  47. async fn workspace_delete() {
  48. let app = spawn_app().await;
  49. let (workspace, _) = create_test_workspace(&app).await;
  50. let delete_params = DeleteWorkspaceParams {
  51. workspace_id: workspace.id.clone(),
  52. };
  53. let _ = app.delete_workspace(delete_params).await;
  54. let read_params = QueryWorkspaceParams {
  55. workspace_id: workspace.id.clone(),
  56. read_apps: false,
  57. };
  58. assert_eq!(app.read_workspace(read_params).await.is_none(), true);
  59. }
  60. async fn create_test_workspace(app: &TestApp) -> (Workspace, String) {
  61. let response = app.register_test_user().await;
  62. let params = CreateWorkspaceParams {
  63. name: "My first workspace".to_string(),
  64. desc: "This is my first workspace".to_string(),
  65. user_id: response.uid.clone(),
  66. };
  67. let workspace = app.create_workspace(params).await;
  68. (workspace, response.uid)
  69. }
  70. #[actix_rt::test]
  71. async fn app_create() {
  72. let application = spawn_app().await;
  73. let app = create_test_app(&application).await;
  74. log::info!("{:?}", app);
  75. }
  76. #[actix_rt::test]
  77. async fn app_read() {
  78. let application = spawn_app().await;
  79. let app = create_test_app(&application).await;
  80. let read_params = QueryAppParams {
  81. app_id: app.id,
  82. read_belongings: false,
  83. is_trash: false,
  84. };
  85. log::info!("{:?}", application.read_app(read_params).await.unwrap());
  86. }
  87. #[actix_rt::test]
  88. async fn app_update() {
  89. let application = spawn_app().await;
  90. let app = create_test_app(&application).await;
  91. let update_params = UpdateAppParams {
  92. app_id: app.id.clone(),
  93. workspace_id: None,
  94. name: Some("flowy".to_owned()),
  95. desc: None,
  96. color_style: None,
  97. is_trash: None,
  98. };
  99. application.update_app(update_params).await;
  100. let read_params = QueryAppParams {
  101. app_id: app.id,
  102. read_belongings: false,
  103. is_trash: false,
  104. };
  105. let app = application.read_app(read_params).await.unwrap();
  106. log::info!("{:?}", app);
  107. }
  108. #[actix_rt::test]
  109. async fn app_delete() {
  110. let application = spawn_app().await;
  111. let app = create_test_app(&application).await;
  112. let delete_params = DeleteAppParams {
  113. app_id: app.id.clone(),
  114. };
  115. application.delete_app(delete_params).await;
  116. let read_params = QueryAppParams {
  117. app_id: app.id,
  118. read_belongings: false,
  119. is_trash: false,
  120. };
  121. assert_eq!(application.read_app(read_params).await.is_none(), true);
  122. }
  123. async fn create_test_app(app: &TestApp) -> App {
  124. let (workspace, user_id) = create_test_workspace(&app).await;
  125. let params = CreateAppParams {
  126. workspace_id: workspace.id,
  127. name: "My first app".to_string(),
  128. desc: "This is my first app".to_string(),
  129. color_style: ColorStyle::default(),
  130. user_id,
  131. };
  132. let app = app.create_app(params).await;
  133. app
  134. }
  135. #[actix_rt::test]
  136. async fn view_create() {
  137. let application = spawn_app().await;
  138. let view = create_test_view(&application).await;
  139. log::info!("{:?}", view);
  140. }
  141. #[actix_rt::test]
  142. async fn view_update() {
  143. let application = spawn_app().await;
  144. let view = create_test_view(&application).await;
  145. // update
  146. let update_params = UpdateViewParams {
  147. view_id: view.id.clone(),
  148. name: Some("new view name".to_string()),
  149. desc: None,
  150. thumbnail: None,
  151. is_trash: Some(true),
  152. };
  153. application.update_view(update_params).await;
  154. // read
  155. let read_params = QueryViewParams {
  156. view_id: view.id.clone(),
  157. is_trash: true,
  158. read_belongings: false,
  159. };
  160. let view = application.read_view(read_params).await;
  161. log::info!("{:?}", view);
  162. }
  163. #[actix_rt::test]
  164. async fn view_delete() {
  165. let application = spawn_app().await;
  166. let view = create_test_view(&application).await;
  167. // delete
  168. let delete_params = DeleteViewParams {
  169. view_id: view.id.clone(),
  170. };
  171. application.delete_view(delete_params).await;
  172. // read
  173. let read_params = QueryViewParams {
  174. view_id: view.id.clone(),
  175. is_trash: true,
  176. read_belongings: false,
  177. };
  178. assert_eq!(application.read_view(read_params).await.is_none(), true);
  179. }
  180. async fn create_test_view(application: &TestApp) -> View {
  181. let app = create_test_app(&application).await;
  182. let params = CreateViewParams {
  183. belong_to_id: app.id.clone(),
  184. name: "My first view".to_string(),
  185. desc: "This is my first view".to_string(),
  186. thumbnail: "http://1.png".to_string(),
  187. view_type: ViewType::Doc,
  188. };
  189. let app = application.create_view(params).await;
  190. app
  191. }