workspace.rs 6.6 KB

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