workspace.rs 6.1 KB

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