test.rs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. use collab_database::views::DatabaseLayout;
  2. use flowy_database2::entities::FieldType;
  3. use flowy_database2::entities::FieldVisibility;
  4. use crate::database::field_settings_test::script::FieldSettingsScript::*;
  5. use crate::database::field_settings_test::script::FieldSettingsTest;
  6. /// Check default field settings for grid, kanban and calendar
  7. #[tokio::test]
  8. async fn get_default_field_settings() {
  9. let mut test = FieldSettingsTest::new_grid().await;
  10. let scripts = vec![AssertAllFieldSettings {
  11. layout_ty: DatabaseLayout::Grid,
  12. visibility: FieldVisibility::AlwaysShown,
  13. }];
  14. test.run_scripts(scripts).await;
  15. let mut test = FieldSettingsTest::new_board().await;
  16. let non_primary_field_ids: Vec<String> = test
  17. .get_fields()
  18. .into_iter()
  19. .filter(|field| !field.is_primary)
  20. .map(|field| field.id)
  21. .collect();
  22. let primary_field_id = test.get_first_field(FieldType::RichText).id;
  23. let scripts = vec![
  24. AssertFieldSettings {
  25. field_ids: non_primary_field_ids.clone(),
  26. layout_ty: DatabaseLayout::Board,
  27. visibility: FieldVisibility::HideWhenEmpty,
  28. },
  29. AssertFieldSettings {
  30. field_ids: vec![primary_field_id.clone()],
  31. layout_ty: DatabaseLayout::Board,
  32. visibility: FieldVisibility::AlwaysShown,
  33. },
  34. ];
  35. test.run_scripts(scripts).await;
  36. let mut test = FieldSettingsTest::new_calendar().await;
  37. let non_primary_field_ids: Vec<String> = test
  38. .get_fields()
  39. .into_iter()
  40. .filter(|field| !field.is_primary)
  41. .map(|field| field.id)
  42. .collect();
  43. let primary_field_id = test.get_first_field(FieldType::RichText).id;
  44. let scripts = vec![
  45. AssertFieldSettings {
  46. field_ids: non_primary_field_ids.clone(),
  47. layout_ty: DatabaseLayout::Calendar,
  48. visibility: FieldVisibility::HideWhenEmpty,
  49. },
  50. AssertFieldSettings {
  51. field_ids: vec![primary_field_id.clone()],
  52. layout_ty: DatabaseLayout::Calendar,
  53. visibility: FieldVisibility::AlwaysShown,
  54. },
  55. ];
  56. test.run_scripts(scripts).await;
  57. }
  58. /// Update field settings for a field
  59. #[tokio::test]
  60. async fn update_field_settings_test() {
  61. let mut test = FieldSettingsTest::new_board().await;
  62. let non_primary_field_ids: Vec<String> = test
  63. .get_fields()
  64. .into_iter()
  65. .filter(|field| !field.is_primary)
  66. .map(|field| field.id)
  67. .collect();
  68. let primary_field_id = test.get_first_field(FieldType::RichText).id;
  69. let scripts = vec![
  70. AssertFieldSettings {
  71. field_ids: non_primary_field_ids,
  72. layout_ty: DatabaseLayout::Board,
  73. visibility: FieldVisibility::HideWhenEmpty,
  74. },
  75. AssertFieldSettings {
  76. field_ids: vec![primary_field_id.clone()],
  77. layout_ty: DatabaseLayout::Board,
  78. visibility: FieldVisibility::AlwaysShown,
  79. },
  80. UpdateFieldSettings {
  81. field_id: primary_field_id,
  82. visibility: Some(FieldVisibility::HideWhenEmpty),
  83. },
  84. AssertAllFieldSettings {
  85. layout_ty: DatabaseLayout::Board,
  86. visibility: FieldVisibility::HideWhenEmpty,
  87. },
  88. ];
  89. test.run_scripts(scripts).await;
  90. }