helper.rs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. use flowy_test::prelude::*;
  2. use flowy_workspace::{
  3. entities::{app::*, view::*, workspace::*},
  4. event::WorkspaceEvent::*,
  5. };
  6. pub(crate) fn invalid_workspace_name_test_case() -> Vec<String> {
  7. vec!["", "1234".repeat(100).as_str()]
  8. .iter()
  9. .map(|s| s.to_string())
  10. .collect::<Vec<_>>()
  11. }
  12. pub fn create_workspace(sdk: &FlowyTestSDK, name: &str, desc: &str) -> Workspace {
  13. let request = CreateWorkspaceRequest {
  14. name: name.to_owned(),
  15. desc: desc.to_owned(),
  16. };
  17. let workspace = WorkspaceTest::new(sdk.clone())
  18. .event(CreateWorkspace)
  19. .request(request)
  20. .sync_send()
  21. .parse::<Workspace>();
  22. workspace
  23. }
  24. pub fn read_workspaces(sdk: &FlowyTestSDK, request: QueryWorkspaceRequest) -> Option<Workspace> {
  25. let mut repeated_workspace = WorkspaceTest::new(sdk.clone())
  26. .event(ReadWorkspaces)
  27. .request(request)
  28. .sync_send()
  29. .parse::<RepeatedWorkspace>();
  30. debug_assert_eq!(repeated_workspace.len(), 1, "Default workspace not found");
  31. repeated_workspace.drain(..1).collect::<Vec<Workspace>>().pop()
  32. }
  33. pub fn create_app(sdk: &FlowyTestSDK, name: &str, desc: &str, workspace_id: &str) -> App {
  34. let create_app_request = CreateAppRequest {
  35. workspace_id: workspace_id.to_owned(),
  36. name: name.to_string(),
  37. desc: desc.to_string(),
  38. color_style: Default::default(),
  39. };
  40. let app = WorkspaceTest::new(sdk.clone())
  41. .event(CreateApp)
  42. .request(create_app_request)
  43. .sync_send()
  44. .parse::<App>();
  45. app
  46. }
  47. pub fn delete_app(sdk: &FlowyTestSDK, app_id: &str) {
  48. let delete_app_request = DeleteAppRequest {
  49. app_id: app_id.to_string(),
  50. };
  51. WorkspaceTest::new(sdk.clone())
  52. .event(DeleteApp)
  53. .request(delete_app_request)
  54. .sync_send();
  55. }
  56. pub fn update_app(sdk: &FlowyTestSDK, request: UpdateAppRequest) {
  57. WorkspaceTest::new(sdk.clone()).event(UpdateApp).request(request).sync_send();
  58. }
  59. pub fn read_app(sdk: &FlowyTestSDK, request: QueryAppRequest) -> App {
  60. let app = WorkspaceTest::new(sdk.clone())
  61. .event(ReadApp)
  62. .request(request)
  63. .sync_send()
  64. .parse::<App>();
  65. app
  66. }
  67. pub fn create_view_with_request(sdk: &FlowyTestSDK, request: CreateViewRequest) -> View {
  68. let view = WorkspaceTest::new(sdk.clone())
  69. .event(CreateView)
  70. .request(request)
  71. .sync_send()
  72. .parse::<View>();
  73. view
  74. }
  75. pub fn create_view(sdk: &FlowyTestSDK, workspace_id: &str) -> View {
  76. let app = create_app(sdk, "App A", "AppFlowy Github Project", workspace_id);
  77. let request = CreateViewRequest {
  78. belong_to_id: app.id.clone(),
  79. name: "View A".to_string(),
  80. desc: "".to_string(),
  81. thumbnail: Some("http://1.png".to_string()),
  82. view_type: ViewType::Doc,
  83. };
  84. create_view_with_request(sdk, request)
  85. }
  86. pub fn update_view(sdk: &FlowyTestSDK, request: UpdateViewRequest) {
  87. WorkspaceTest::new(sdk.clone()).event(UpdateView).request(request).sync_send();
  88. }
  89. pub fn read_view(sdk: &FlowyTestSDK, request: QueryViewRequest) -> View {
  90. WorkspaceTest::new(sdk.clone())
  91. .event(ReadView)
  92. .request(request)
  93. .sync_send()
  94. .parse::<View>()
  95. }