helper.rs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. pub use flowy_test::builder::AnnieTestBuilder;
  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 = AnnieTestBuilder::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 = AnnieTestBuilder::new()
  26. .event(ReadWorkspaces)
  27. .request(request)
  28. .sync_send()
  29. .parse::<RepeatedWorkspace>();
  30. debug_assert_eq!(repeated_workspace.len(), 1);
  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 = AnnieTestBuilder::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. AnnieTestBuilder::new().event(DeleteApp).request(delete_app_request).sync_send();
  52. }
  53. pub fn update_app(request: UpdateAppRequest) { AnnieTestBuilder::new().event(UpdateApp).request(request).sync_send(); }
  54. pub fn read_app(request: QueryAppRequest) -> App {
  55. let app = AnnieTestBuilder::new().event(ReadApp).request(request).sync_send().parse::<App>();
  56. app
  57. }
  58. pub fn create_view_with_request(request: CreateViewRequest) -> View {
  59. let view = AnnieTestBuilder::new()
  60. .event(CreateView)
  61. .request(request)
  62. .sync_send()
  63. .parse::<View>();
  64. view
  65. }
  66. pub fn create_view() -> View {
  67. let workspace = create_workspace("Workspace", "");
  68. let app = create_app("App A", "AppFlowy Github Project", &workspace.id);
  69. let request = CreateViewRequest {
  70. belong_to_id: app.id.clone(),
  71. name: "View A".to_string(),
  72. desc: "".to_string(),
  73. thumbnail: Some("http://1.png".to_string()),
  74. view_type: ViewType::Doc,
  75. };
  76. create_view_with_request(request)
  77. }
  78. pub fn update_view(request: UpdateViewRequest) { AnnieTestBuilder::new().event(UpdateView).request(request).sync_send(); }
  79. pub fn read_view(request: QueryViewRequest) -> View { AnnieTestBuilder::new().event(ReadView).request(request).sync_send().parse::<View>() }