workspace_test.rs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. use crate::helper::*;
  2. use flowy_test::{builder::*, FlowyEnv};
  3. use flowy_workspace::{
  4. entities::workspace::{CreateWorkspaceRequest, QueryWorkspaceRequest},
  5. event::WorkspaceEvent::*,
  6. prelude::*,
  7. };
  8. #[test]
  9. fn workspace_read_all() {
  10. let test = WorkspaceTest::new();
  11. let workspace = read_workspace(&test.sdk, QueryWorkspaceRequest::new()).unwrap();
  12. assert_eq!(test.workspace, workspace);
  13. }
  14. #[test]
  15. fn workspace_read() {
  16. let test = WorkspaceTest::new();
  17. let request = QueryWorkspaceRequest::new().workspace_id(&test.workspace.id);
  18. let workspace = read_workspace(&test.sdk, request).unwrap();
  19. assert_eq!(test.workspace, workspace);
  20. }
  21. #[test]
  22. fn workspace_create_with_apps() {
  23. let test = WorkspaceTest::new();
  24. let app = create_app(&test.sdk, "App A", "AppFlowy Github Project", &test.workspace.id);
  25. let request = QueryWorkspaceRequest::new().workspace_id(&test.workspace.id);
  26. let workspace_from_db = read_workspace(&test.sdk, request).unwrap();
  27. assert_eq!(&app, workspace_from_db.apps.first_or_crash());
  28. }
  29. #[test]
  30. fn workspace_create_with_invalid_name() {
  31. for name in invalid_workspace_name_test_case() {
  32. let sdk = FlowyEnv::setup().sdk;
  33. let request = CreateWorkspaceRequest { name, desc: "".to_owned() };
  34. assert_eq!(
  35. FlowyWorkspaceTest::new(sdk)
  36. .event(CreateWorkspace)
  37. .request(request)
  38. .sync_send()
  39. .error()
  40. .code,
  41. ErrorCode::WorkspaceNameInvalid
  42. )
  43. }
  44. }
  45. #[test]
  46. fn workspace_update_with_invalid_name() {
  47. let sdk = FlowyEnv::setup().sdk;
  48. for name in invalid_workspace_name_test_case() {
  49. let request = CreateWorkspaceRequest { name, desc: "".to_owned() };
  50. assert_eq!(
  51. FlowyWorkspaceTest::new(sdk.clone())
  52. .event(CreateWorkspace)
  53. .request(request)
  54. .sync_send()
  55. .error()
  56. .code,
  57. ErrorCode::WorkspaceNameInvalid
  58. )
  59. }
  60. }
  61. // TODO 1) delete workspace, but can't delete the last workspace