workspace_test.rs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. use flowy_test::{builder::*, workspace::*, FlowyTest};
  2. use flowy_workspace::{
  3. entities::workspace::{CreateWorkspaceRequest, QueryWorkspaceRequest},
  4. event::WorkspaceEvent::*,
  5. prelude::*,
  6. };
  7. #[tokio::test]
  8. async fn workspace_read_all() {
  9. let test = WorkspaceTest::new().await;
  10. let workspace = read_workspace(&test.sdk, QueryWorkspaceRequest::new(None)).await;
  11. assert_eq!(workspace.len(), 2);
  12. }
  13. #[tokio::test]
  14. async fn workspace_read() {
  15. let test = WorkspaceTest::new().await;
  16. let request = QueryWorkspaceRequest::new(Some(test.workspace.id.clone()));
  17. let workspace_from_db = read_workspace(&test.sdk, request)
  18. .await
  19. .drain(..1)
  20. .collect::<Vec<Workspace>>()
  21. .pop()
  22. .unwrap();
  23. assert_eq!(test.workspace, workspace_from_db);
  24. }
  25. #[tokio::test]
  26. async fn workspace_create_with_apps() {
  27. let test = WorkspaceTest::new().await;
  28. let app = create_app(&test.sdk, "App A", "AppFlowy GitHub Project", &test.workspace.id).await;
  29. let request = QueryWorkspaceRequest::new(Some(test.workspace.id.clone()));
  30. let workspace_from_db = read_workspace(&test.sdk, request)
  31. .await
  32. .drain(..1)
  33. .collect::<Vec<Workspace>>()
  34. .pop()
  35. .unwrap();
  36. assert_eq!(&app, workspace_from_db.apps.first_or_crash());
  37. }
  38. #[tokio::test]
  39. async fn workspace_create_with_invalid_name() {
  40. for (name, code) in invalid_workspace_name_test_case() {
  41. let sdk = FlowyTest::setup().sdk;
  42. let request = CreateWorkspaceRequest {
  43. name,
  44. desc: "".to_owned(),
  45. };
  46. assert_eq!(
  47. FlowyWorkspaceTest::new(sdk)
  48. .event(CreateWorkspace)
  49. .request(request)
  50. .async_send()
  51. .await
  52. .error()
  53. .code,
  54. code.value()
  55. )
  56. }
  57. }
  58. #[tokio::test]
  59. async fn workspace_update_with_invalid_name() {
  60. let sdk = FlowyTest::setup().sdk;
  61. for (name, code) in invalid_workspace_name_test_case() {
  62. let request = CreateWorkspaceRequest {
  63. name,
  64. desc: "".to_owned(),
  65. };
  66. assert_eq!(
  67. FlowyWorkspaceTest::new(sdk.clone())
  68. .event(CreateWorkspace)
  69. .request(request)
  70. .async_send()
  71. .await
  72. .error()
  73. .code,
  74. code.value()
  75. )
  76. }
  77. }
  78. // TODO 1) delete workspace, but can't delete the last workspace