helper.rs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. pub use flowy_test::builder::SingleUserTestBuilder;
  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) -> (String, Workspace) {
  13. let builder = SingleUserTestBuilder::new();
  14. let user_id = builder.user_detail.as_ref().unwrap().id.clone();
  15. let request = CreateWorkspaceRequest {
  16. name: name.to_owned(),
  17. desc: desc.to_owned(),
  18. user_id: user_id.clone(),
  19. };
  20. let workspace = builder
  21. .event(CreateWorkspace)
  22. .request(request)
  23. .sync_send()
  24. .parse::<Workspace>();
  25. (user_id, workspace)
  26. }
  27. pub fn read_workspaces(request: QueryWorkspaceRequest) -> Option<Workspace> {
  28. let mut repeated_workspace = SingleUserTestBuilder::new()
  29. .event(ReadWorkspaces)
  30. .request(request)
  31. .sync_send()
  32. .parse::<RepeatedWorkspace>();
  33. debug_assert_eq!(repeated_workspace.len(), 1);
  34. repeated_workspace
  35. .drain(..1)
  36. .collect::<Vec<Workspace>>()
  37. .pop()
  38. }
  39. pub fn create_app(name: &str, desc: &str, workspace_id: &str) -> App {
  40. let create_app_request = CreateAppRequest {
  41. workspace_id: workspace_id.to_owned(),
  42. name: name.to_string(),
  43. desc: desc.to_string(),
  44. color_style: Default::default(),
  45. };
  46. let app = SingleUserTestBuilder::new()
  47. .event(CreateApp)
  48. .request(create_app_request)
  49. .sync_send()
  50. .parse::<App>();
  51. app
  52. }
  53. pub fn delete_app(app_id: &str) {
  54. let delete_app_request = DeleteAppRequest {
  55. app_id: app_id.to_string(),
  56. };
  57. SingleUserTestBuilder::new()
  58. .event(DeleteApp)
  59. .request(delete_app_request)
  60. .sync_send();
  61. }
  62. pub fn update_app(request: UpdateAppRequest) {
  63. SingleUserTestBuilder::new()
  64. .event(UpdateApp)
  65. .request(request)
  66. .sync_send();
  67. }
  68. pub fn read_app(request: QueryAppRequest) -> App {
  69. let app = SingleUserTestBuilder::new()
  70. .event(ReadApp)
  71. .request(request)
  72. .sync_send()
  73. .parse::<App>();
  74. app
  75. }
  76. pub fn create_view_with_request(request: CreateViewRequest) -> View {
  77. let view = SingleUserTestBuilder::new()
  78. .event(CreateView)
  79. .request(request)
  80. .sync_send()
  81. .parse::<View>();
  82. view
  83. }
  84. pub fn create_view() -> View {
  85. let workspace = create_workspace("Workspace", "").1;
  86. let app = create_app("App A", "AppFlowy Github Project", &workspace.id);
  87. let request = CreateViewRequest {
  88. belong_to_id: app.id.clone(),
  89. name: "View A".to_string(),
  90. desc: "".to_string(),
  91. thumbnail: None,
  92. view_type: ViewType::Doc,
  93. };
  94. create_view_with_request(request)
  95. }
  96. pub fn update_view(request: UpdateViewRequest) {
  97. SingleUserTestBuilder::new()
  98. .event(UpdateView)
  99. .request(request)
  100. .sync_send();
  101. }
  102. pub fn read_view(request: QueryViewRequest) -> View {
  103. SingleUserTestBuilder::new()
  104. .event(ReadView)
  105. .request(request)
  106. .sync_send()
  107. .parse::<View>()
  108. }