helper.rs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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 builder = AnnieTestBuilder::new();
  14. let request = CreateWorkspaceRequest {
  15. name: name.to_owned(),
  16. desc: desc.to_owned(),
  17. };
  18. let workspace = builder.event(CreateWorkspace).request(request).sync_send().parse::<Workspace>();
  19. workspace
  20. }
  21. pub fn read_workspaces(request: QueryWorkspaceRequest) -> Option<Workspace> {
  22. let mut repeated_workspace = AnnieTestBuilder::new()
  23. .event(ReadWorkspaces)
  24. .request(request)
  25. .sync_send()
  26. .parse::<RepeatedWorkspace>();
  27. debug_assert_eq!(repeated_workspace.len(), 1);
  28. repeated_workspace.drain(..1).collect::<Vec<Workspace>>().pop()
  29. }
  30. pub fn create_app(name: &str, desc: &str, workspace_id: &str) -> App {
  31. let create_app_request = CreateAppRequest {
  32. workspace_id: workspace_id.to_owned(),
  33. name: name.to_string(),
  34. desc: desc.to_string(),
  35. color_style: Default::default(),
  36. };
  37. let app = AnnieTestBuilder::new()
  38. .event(CreateApp)
  39. .request(create_app_request)
  40. .sync_send()
  41. .parse::<App>();
  42. app
  43. }
  44. pub fn delete_app(app_id: &str) {
  45. let delete_app_request = DeleteAppRequest {
  46. app_id: app_id.to_string(),
  47. };
  48. AnnieTestBuilder::new().event(DeleteApp).request(delete_app_request).sync_send();
  49. }
  50. pub fn update_app(request: UpdateAppRequest) { AnnieTestBuilder::new().event(UpdateApp).request(request).sync_send(); }
  51. pub fn read_app(request: QueryAppRequest) -> App {
  52. let app = AnnieTestBuilder::new().event(ReadApp).request(request).sync_send().parse::<App>();
  53. app
  54. }
  55. pub fn create_view_with_request(request: CreateViewRequest) -> View {
  56. let view = AnnieTestBuilder::new()
  57. .event(CreateView)
  58. .request(request)
  59. .sync_send()
  60. .parse::<View>();
  61. view
  62. }
  63. pub fn create_view() -> View {
  64. let workspace = create_workspace("Workspace", "");
  65. let app = create_app("App A", "AppFlowy Github Project", &workspace.id);
  66. let request = CreateViewRequest {
  67. belong_to_id: app.id.clone(),
  68. name: "View A".to_string(),
  69. desc: "".to_string(),
  70. thumbnail: Some("http://1.png".to_string()),
  71. view_type: ViewType::Doc,
  72. };
  73. create_view_with_request(request)
  74. }
  75. pub fn update_view(request: UpdateViewRequest) { AnnieTestBuilder::new().event(UpdateView).request(request).sync_send(); }
  76. pub fn read_view(request: QueryViewRequest) -> View { AnnieTestBuilder::new().event(ReadView).request(request).sync_send().parse::<View>() }