test.rs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. use collab_database::views::DatabaseLayout;
  2. use flowy_database2::entities::FieldType;
  3. use flowy_database2::entities::FieldVisibility;
  4. use flowy_database2::services::field_settings::default_visibility;
  5. use crate::database::field_settings_test::script::FieldSettingsScript::*;
  6. use crate::database::field_settings_test::script::FieldSettingsTest;
  7. /// Check default field settings for grid, kanban and calendar
  8. #[tokio::test]
  9. async fn get_default_field_settings() {
  10. let mut test = FieldSettingsTest::new_grid().await;
  11. let visibility = default_visibility(DatabaseLayout::Grid);
  12. let scripts = vec![AssertAllFieldSettings { visibility }];
  13. test.run_scripts(scripts).await;
  14. let mut test = FieldSettingsTest::new_board().await;
  15. let visibility = default_visibility(DatabaseLayout::Board);
  16. let scripts = vec![AssertAllFieldSettings { visibility }];
  17. test.run_scripts(scripts).await;
  18. let mut test = FieldSettingsTest::new_calendar().await;
  19. let visibility = default_visibility(DatabaseLayout::Calendar);
  20. let scripts = vec![AssertAllFieldSettings { visibility }];
  21. test.run_scripts(scripts).await;
  22. }
  23. /// Update field settings for a field
  24. #[tokio::test]
  25. async fn update_field_settings_test() {
  26. let mut test = FieldSettingsTest::new_grid().await;
  27. let checkbox_field = test.get_first_field(FieldType::Checkbox);
  28. let text_field = test.get_first_field(FieldType::RichText);
  29. let visibility = default_visibility(DatabaseLayout::Grid);
  30. let new_visibility = FieldVisibility::AlwaysHidden;
  31. let scripts = vec![
  32. AssertAllFieldSettings {
  33. visibility: visibility.clone(),
  34. },
  35. UpdateFieldSettings {
  36. field_id: checkbox_field.id.clone(),
  37. visibility: Some(new_visibility.clone()),
  38. },
  39. AssertFieldSettings {
  40. field_id: checkbox_field.id,
  41. visibility: new_visibility,
  42. },
  43. AssertFieldSettings {
  44. field_id: text_field.id,
  45. visibility,
  46. },
  47. ];
  48. test.run_scripts(scripts).await;
  49. }