123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- use collab_database::views::DatabaseLayout;
- use flowy_database2::entities::FieldType;
- use flowy_database2::entities::FieldVisibility;
- use crate::database::field_settings_test::script::FieldSettingsScript::*;
- use crate::database::field_settings_test::script::FieldSettingsTest;
- /// Check default field settings for grid, kanban and calendar
- #[tokio::test]
- async fn get_default_field_settings() {
- let mut test = FieldSettingsTest::new_grid().await;
- let scripts = vec![AssertAllFieldSettings {
- layout_ty: DatabaseLayout::Grid,
- visibility: FieldVisibility::AlwaysShown,
- }];
- test.run_scripts(scripts).await;
- let mut test = FieldSettingsTest::new_board().await;
- let non_primary_field_ids: Vec<String> = test
- .get_fields()
- .into_iter()
- .filter(|field| !field.is_primary)
- .map(|field| field.id)
- .collect();
- let primary_field_id = test.get_first_field(FieldType::RichText).id;
- let scripts = vec![
- AssertFieldSettings {
- field_ids: non_primary_field_ids.clone(),
- layout_ty: DatabaseLayout::Board,
- visibility: FieldVisibility::HideWhenEmpty,
- },
- AssertFieldSettings {
- field_ids: vec![primary_field_id.clone()],
- layout_ty: DatabaseLayout::Board,
- visibility: FieldVisibility::AlwaysShown,
- },
- ];
- test.run_scripts(scripts).await;
- let mut test = FieldSettingsTest::new_calendar().await;
- let non_primary_field_ids: Vec<String> = test
- .get_fields()
- .into_iter()
- .filter(|field| !field.is_primary)
- .map(|field| field.id)
- .collect();
- let primary_field_id = test.get_first_field(FieldType::RichText).id;
- let scripts = vec![
- AssertFieldSettings {
- field_ids: non_primary_field_ids.clone(),
- layout_ty: DatabaseLayout::Calendar,
- visibility: FieldVisibility::HideWhenEmpty,
- },
- AssertFieldSettings {
- field_ids: vec![primary_field_id.clone()],
- layout_ty: DatabaseLayout::Calendar,
- visibility: FieldVisibility::AlwaysShown,
- },
- ];
- test.run_scripts(scripts).await;
- }
- /// Update field settings for a field
- #[tokio::test]
- async fn update_field_settings_test() {
- let mut test = FieldSettingsTest::new_board().await;
- let non_primary_field_ids: Vec<String> = test
- .get_fields()
- .into_iter()
- .filter(|field| !field.is_primary)
- .map(|field| field.id)
- .collect();
- let primary_field_id = test.get_first_field(FieldType::RichText).id;
- let scripts = vec![
- AssertFieldSettings {
- field_ids: non_primary_field_ids,
- layout_ty: DatabaseLayout::Board,
- visibility: FieldVisibility::HideWhenEmpty,
- },
- AssertFieldSettings {
- field_ids: vec![primary_field_id.clone()],
- layout_ty: DatabaseLayout::Board,
- visibility: FieldVisibility::AlwaysShown,
- },
- UpdateFieldSettings {
- field_id: primary_field_id,
- visibility: Some(FieldVisibility::HideWhenEmpty),
- },
- AssertAllFieldSettings {
- layout_ty: DatabaseLayout::Board,
- visibility: FieldVisibility::HideWhenEmpty,
- },
- ];
- test.run_scripts(scripts).await;
- }
|