workspace_test.rs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. use crate::helper::*;
  2. use flowy_workspace::{
  3. entities::workspace::{
  4. CreateWorkspaceRequest,
  5. QueryWorkspaceRequest,
  6. RepeatedWorkspace,
  7. Workspace,
  8. },
  9. event::WorkspaceEvent::*,
  10. prelude::*,
  11. };
  12. #[test]
  13. fn workspace_create_success() { let _ = create_workspace("First workspace", ""); }
  14. #[test]
  15. fn workspace_read_all_success() {
  16. let (user_id, _) = create_workspace(
  17. "Workspace A",
  18. "workspace_create_and_then_get_workspace_success",
  19. );
  20. let request = QueryWorkspaceRequest {
  21. workspace_id: None,
  22. user_id,
  23. };
  24. let workspaces = SingleUserTestBuilder::new()
  25. .event(ReadWorkspaces)
  26. .request(request)
  27. .sync_send()
  28. .parse::<RepeatedWorkspace>();
  29. dbg!(&workspaces);
  30. }
  31. #[test]
  32. fn workspace_create_and_then_get_workspace_success() {
  33. let (user_id, workspace) = create_workspace(
  34. "Workspace A",
  35. "workspace_create_and_then_get_workspace_success",
  36. );
  37. let request = QueryWorkspaceRequest {
  38. workspace_id: Some(workspace.id.clone()),
  39. user_id,
  40. };
  41. let workspace_from_db = read_workspaces(request).unwrap();
  42. assert_eq!(workspace.name, workspace_from_db.name);
  43. }
  44. #[test]
  45. fn workspace_create_with_apps_success() {
  46. let (user_id, workspace) = create_workspace("Workspace", "");
  47. let app = create_app("App A", "AppFlowy Github Project", &workspace.id);
  48. let query_workspace_request = QueryWorkspaceRequest {
  49. workspace_id: Some(workspace.id),
  50. user_id,
  51. };
  52. let workspace_from_db = read_workspaces(query_workspace_request).unwrap();
  53. assert_eq!(&app, workspace_from_db.apps.first_or_crash());
  54. }
  55. #[test]
  56. fn workspace_create_with_invalid_name_test() {
  57. for name in invalid_workspace_name_test_case() {
  58. let builder = SingleUserTestBuilder::new();
  59. let user_id = builder.user_detail.as_ref().unwrap().id.clone();
  60. let request = CreateWorkspaceRequest {
  61. name,
  62. desc: "".to_owned(),
  63. user_id: user_id.clone(),
  64. };
  65. assert_eq!(
  66. builder
  67. .event(CreateWorkspace)
  68. .request(request)
  69. .sync_send()
  70. .error()
  71. .code,
  72. WsErrCode::WorkspaceNameInvalid
  73. )
  74. }
  75. }
  76. #[test]
  77. fn workspace_update_with_invalid_name_test() {
  78. for name in invalid_workspace_name_test_case() {
  79. let builder = SingleUserTestBuilder::new();
  80. let user_id = builder.user_detail.as_ref().unwrap().id.clone();
  81. let request = CreateWorkspaceRequest {
  82. name,
  83. desc: "".to_owned(),
  84. user_id: user_id.clone(),
  85. };
  86. assert_eq!(
  87. builder
  88. .event(CreateWorkspace)
  89. .request(request)
  90. .sync_send()
  91. .error()
  92. .code,
  93. WsErrCode::WorkspaceNameInvalid
  94. )
  95. }
  96. }
  97. // TODO 1) delete workspace, but can't delete the last workspace