helper.rs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. use flowy_test::builder::{UserTestBuilder, WorkspaceTestBuilder};
  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(name: &str, desc: &str) -> Workspace {
  13. let request = CreateWorkspaceRequest {
  14. name: name.to_owned(),
  15. desc: desc.to_owned(),
  16. };
  17. let workspace = WorkspaceTestBuilder::new()
  18. .event(CreateWorkspace)
  19. .request(request)
  20. .sync_send()
  21. .parse::<Workspace>();
  22. workspace
  23. }
  24. pub fn read_workspaces(request: QueryWorkspaceRequest) -> Option<Workspace> {
  25. let mut repeated_workspace = WorkspaceTestBuilder::new()
  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(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 = WorkspaceTestBuilder::new()
  41. .event(CreateApp)
  42. .request(create_app_request)
  43. .sync_send()
  44. .parse::<App>();
  45. app
  46. }
  47. pub fn delete_app(app_id: &str) {
  48. let delete_app_request = DeleteAppRequest {
  49. app_id: app_id.to_string(),
  50. };
  51. WorkspaceTestBuilder::new().event(DeleteApp).request(delete_app_request).sync_send();
  52. }
  53. pub fn update_app(request: UpdateAppRequest) { WorkspaceTestBuilder::new().event(UpdateApp).request(request).sync_send(); }
  54. pub fn read_app(request: QueryAppRequest) -> App {
  55. let app = WorkspaceTestBuilder::new()
  56. .event(ReadApp)
  57. .request(request)
  58. .sync_send()
  59. .parse::<App>();
  60. app
  61. }
  62. pub fn create_view_with_request(request: CreateViewRequest) -> View {
  63. let view = WorkspaceTestBuilder::new()
  64. .event(CreateView)
  65. .request(request)
  66. .sync_send()
  67. .parse::<View>();
  68. view
  69. }
  70. pub fn create_view(workspace_id: &str) -> View {
  71. let app = create_app("App A", "AppFlowy Github Project", workspace_id);
  72. let request = CreateViewRequest {
  73. belong_to_id: app.id.clone(),
  74. name: "View A".to_string(),
  75. desc: "".to_string(),
  76. thumbnail: Some("http://1.png".to_string()),
  77. view_type: ViewType::Doc,
  78. };
  79. create_view_with_request(request)
  80. }
  81. pub fn update_view(request: UpdateViewRequest) { WorkspaceTestBuilder::new().event(UpdateView).request(request).sync_send(); }
  82. pub fn read_view(request: QueryViewRequest) -> View {
  83. WorkspaceTestBuilder::new()
  84. .event(ReadView)
  85. .request(request)
  86. .sync_send()
  87. .parse::<View>()
  88. }