workspace_test.rs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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() {
  16. let (user_id, _) = create_workspace(
  17. "Workspace A",
  18. "workspace_create_and_then_get_workspace_success",
  19. );
  20. let request = QueryWorkspaceRequest::new(&user_id);
  21. let workspaces = UserTestBuilder::new()
  22. .event(ReadWorkspaces)
  23. .request(request)
  24. .sync_send()
  25. .parse::<RepeatedWorkspace>();
  26. dbg!(&workspaces);
  27. }
  28. #[test]
  29. fn workspace_create_and_then_get_workspace() {
  30. let (user_id, workspace) = create_workspace(
  31. "Workspace A",
  32. "workspace_create_and_then_get_workspace_success",
  33. );
  34. let request = QueryWorkspaceRequest::new(&user_id).workspace_id(&workspace.id);
  35. let workspace_from_db = read_workspaces(request).unwrap();
  36. assert_eq!(workspace.name, workspace_from_db.name);
  37. }
  38. #[test]
  39. fn workspace_create_with_apps() {
  40. let (user_id, workspace) = create_workspace("Workspace", "");
  41. let app = create_app("App A", "AppFlowy Github Project", &workspace.id);
  42. let request = QueryWorkspaceRequest::new(&user_id).workspace_id(&workspace.id);
  43. let workspace_from_db = read_workspaces(request).unwrap();
  44. assert_eq!(&app, workspace_from_db.apps.first_or_crash());
  45. }
  46. #[test]
  47. fn workspace_create_with_invalid_name() {
  48. for name in invalid_workspace_name_test_case() {
  49. let builder = UserTestBuilder::new();
  50. let user_id = builder.user_detail.as_ref().unwrap().id.clone();
  51. let request = CreateWorkspaceRequest {
  52. name,
  53. desc: "".to_owned(),
  54. user_id: user_id.clone(),
  55. };
  56. assert_eq!(
  57. builder
  58. .event(CreateWorkspace)
  59. .request(request)
  60. .sync_send()
  61. .error()
  62. .code,
  63. ErrorCode::WorkspaceNameInvalid
  64. )
  65. }
  66. }
  67. #[test]
  68. fn workspace_update_with_invalid_name() {
  69. for name in invalid_workspace_name_test_case() {
  70. let builder = UserTestBuilder::new();
  71. let user_id = builder.user_detail.as_ref().unwrap().id.clone();
  72. let request = CreateWorkspaceRequest {
  73. name,
  74. desc: "".to_owned(),
  75. user_id: user_id.clone(),
  76. };
  77. assert_eq!(
  78. builder
  79. .event(CreateWorkspace)
  80. .request(request)
  81. .sync_send()
  82. .error()
  83. .code,
  84. ErrorCode::WorkspaceNameInvalid
  85. )
  86. }
  87. }
  88. // TODO 1) delete workspace, but can't delete the last workspace