workspace_test.rs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 _ = create_workspace("Workspace A", "workspace_create_and_then_get_workspace_success");
  12. let request = QueryWorkspaceRequest::new();
  13. let workspaces = AnnieTestBuilder::new()
  14. .event(ReadWorkspaces)
  15. .request(request)
  16. .sync_send()
  17. .parse::<RepeatedWorkspace>();
  18. dbg!(&workspaces);
  19. }
  20. #[test]
  21. fn workspace_create_and_then_get_workspace() {
  22. let workspace = create_workspace("Workspace A", "workspace_create_and_then_get_workspace_success");
  23. let request = QueryWorkspaceRequest::new().workspace_id(&workspace.id);
  24. let workspace_from_db = read_workspaces(request).unwrap();
  25. assert_eq!(workspace.name, workspace_from_db.name);
  26. }
  27. #[test]
  28. fn workspace_create_with_apps() {
  29. let workspace = create_workspace("Workspace", "");
  30. let app = create_app("App A", "AppFlowy Github Project", &workspace.id);
  31. let request = QueryWorkspaceRequest::new().workspace_id(&workspace.id);
  32. let workspace_from_db = read_workspaces(request).unwrap();
  33. assert_eq!(&app, workspace_from_db.apps.first_or_crash());
  34. }
  35. #[test]
  36. fn workspace_create_with_invalid_name() {
  37. for name in invalid_workspace_name_test_case() {
  38. let builder = AnnieTestBuilder::new();
  39. let request = CreateWorkspaceRequest { name, desc: "".to_owned() };
  40. assert_eq!(
  41. builder.event(CreateWorkspace).request(request).sync_send().error().code,
  42. ErrorCode::WorkspaceNameInvalid
  43. )
  44. }
  45. }
  46. #[test]
  47. fn workspace_update_with_invalid_name() {
  48. for name in invalid_workspace_name_test_case() {
  49. let builder = AnnieTestBuilder::new();
  50. let request = CreateWorkspaceRequest { name, desc: "".to_owned() };
  51. assert_eq!(
  52. builder.event(CreateWorkspace).request(request).sync_send().error().code,
  53. ErrorCode::WorkspaceNameInvalid
  54. )
  55. }
  56. }
  57. // TODO 1) delete workspace, but can't delete the last workspace