workspace_test.rs 2.7 KB

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