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::FieldSettingsTest;
|
|
|
|
|
|
|
|
/// Check default field settings for grid, kanban and calendar
|
|
|
|
#[tokio::test]
|
2023-12-04 14:20:07 -08:00
|
|
|
async fn get_default_grid_field_settings() {
|
|
|
|
// grid
|
2023-08-27 22:31:32 +08:00
|
|
|
let mut test = FieldSettingsTest::new_grid().await;
|
2023-12-04 14:20:07 -08:00
|
|
|
test
|
|
|
|
.assert_all_field_settings(FieldVisibility::AlwaysShown, DEFAULT_WIDTH)
|
|
|
|
.await;
|
|
|
|
}
|
2023-08-27 22:31:32 +08:00
|
|
|
|
2023-12-04 14:20:07 -08:00
|
|
|
#[tokio::test]
|
|
|
|
async fn get_default_board_field_settings() {
|
|
|
|
// board
|
2023-08-27 22:31:32 +08:00
|
|
|
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;
|
2023-12-04 14:20:07 -08:00
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
non_primary_field_ids.clone(),
|
|
|
|
FieldVisibility::HideWhenEmpty,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
vec![primary_field_id.clone()],
|
|
|
|
FieldVisibility::AlwaysShown,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
|
|
|
}
|
2023-08-27 22:31:32 +08:00
|
|
|
|
2023-12-04 14:20:07 -08:00
|
|
|
#[tokio::test]
|
|
|
|
async fn get_default_calendar_field_settings() {
|
|
|
|
// calendar
|
2023-08-27 22:31:32 +08:00
|
|
|
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;
|
2023-12-04 14:20:07 -08:00
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
non_primary_field_ids.clone(),
|
|
|
|
FieldVisibility::HideWhenEmpty,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
vec![primary_field_id.clone()],
|
|
|
|
FieldVisibility::AlwaysShown,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
2023-08-27 22:31:32 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
/// 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
|
|
|
|
2023-12-04 14:20:07 -08:00
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
non_primary_field_ids.clone(),
|
|
|
|
FieldVisibility::HideWhenEmpty,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
vec![primary_field_id.clone()],
|
|
|
|
FieldVisibility::AlwaysShown,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
|
|
|
|
|
|
|
test
|
|
|
|
.update_field_settings(
|
|
|
|
primary_field_id.clone(),
|
|
|
|
Some(FieldVisibility::HideWhenEmpty),
|
|
|
|
None,
|
|
|
|
)
|
|
|
|
.await;
|
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
non_primary_field_ids.clone(),
|
|
|
|
FieldVisibility::HideWhenEmpty,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
|
|
|
test
|
|
|
|
.assert_field_settings(
|
|
|
|
vec![primary_field_id.clone()],
|
|
|
|
FieldVisibility::HideWhenEmpty,
|
|
|
|
DEFAULT_WIDTH,
|
|
|
|
)
|
|
|
|
.await;
|
2023-08-27 22:31:32 +08:00
|
|
|
}
|