workspace_test.rs 2.4 KB

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