2023-08-27 22:31:32 +08:00
|
|
|
use flowy_database2::entities::FieldType;
|
|
|
|
use flowy_database2::entities::FieldVisibility;
|
2023-11-06 14:48:59 +08:00
|
|
|
use flowy_database2::services::field_settings::DEFAULT_WIDTH;
|
2023-08-27 22:31:32 +08:00
|
|
|
|
|
|
|
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;
|
2023-09-01 22:40:17 +08:00
|
|
|
let scripts = vec![AssertAllFieldSettings {
|
|
|
|
visibility: FieldVisibility::AlwaysShown,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-09-01 22:40:17 +08:00
|
|
|
}];
|
2023-08-27 22:31:32 +08:00
|
|
|
test.run_scripts(scripts).await;
|
|
|
|
|
|
|
|
let mut test = FieldSettingsTest::new_board().await;
|
2023-09-01 22:40:17 +08:00
|
|
|
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(),
|
|
|
|
visibility: FieldVisibility::HideWhenEmpty,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-09-01 22:40:17 +08:00
|
|
|
},
|
|
|
|
AssertFieldSettings {
|
|
|
|
field_ids: vec![primary_field_id.clone()],
|
|
|
|
visibility: FieldVisibility::AlwaysShown,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-09-01 22:40:17 +08:00
|
|
|
},
|
|
|
|
];
|
2023-08-27 22:31:32 +08:00
|
|
|
test.run_scripts(scripts).await;
|
|
|
|
|
|
|
|
let mut test = FieldSettingsTest::new_calendar().await;
|
2023-09-01 22:40:17 +08:00
|
|
|
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(),
|
|
|
|
visibility: FieldVisibility::HideWhenEmpty,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-09-01 22:40:17 +08:00
|
|
|
},
|
|
|
|
AssertFieldSettings {
|
|
|
|
field_ids: vec![primary_field_id.clone()],
|
|
|
|
visibility: FieldVisibility::AlwaysShown,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-09-01 22:40:17 +08:00
|
|
|
},
|
|
|
|
];
|
2023-08-27 22:31:32 +08:00
|
|
|
test.run_scripts(scripts).await;
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Update field settings for a field
|
|
|
|
#[tokio::test]
|
|
|
|
async fn update_field_settings_test() {
|
2023-09-01 22:40:17 +08:00
|
|
|
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;
|
2023-08-27 22:31:32 +08:00
|
|
|
|
|
|
|
let scripts = vec![
|
|
|
|
AssertFieldSettings {
|
2023-09-01 22:40:17 +08:00
|
|
|
field_ids: non_primary_field_ids,
|
|
|
|
visibility: FieldVisibility::HideWhenEmpty,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-08-27 22:31:32 +08:00
|
|
|
},
|
|
|
|
AssertFieldSettings {
|
2023-09-01 22:40:17 +08:00
|
|
|
field_ids: vec![primary_field_id.clone()],
|
|
|
|
visibility: FieldVisibility::AlwaysShown,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-09-01 22:40:17 +08:00
|
|
|
},
|
|
|
|
UpdateFieldSettings {
|
|
|
|
field_id: primary_field_id,
|
|
|
|
visibility: Some(FieldVisibility::HideWhenEmpty),
|
2023-11-06 14:48:59 +08:00
|
|
|
width: None,
|
2023-09-01 22:40:17 +08:00
|
|
|
},
|
|
|
|
AssertAllFieldSettings {
|
|
|
|
visibility: FieldVisibility::HideWhenEmpty,
|
2023-11-06 14:48:59 +08:00
|
|
|
width: DEFAULT_WIDTH,
|
2023-08-27 22:31:32 +08:00
|
|
|
},
|
|
|
|
];
|
|
|
|
test.run_scripts(scripts).await;
|
|
|
|
}
|