chore: bump up yrs to 0.17.1 (#4078)

* chore: bump yrs

* chore: update rev
This commit is contained in:
Nathan.fooo
2023-12-04 14:20:07 -08:00
committed by GitHub
parent d4cef2e866
commit 0d776a9294
11 changed files with 195 additions and 227 deletions

View File

@ -1501,10 +1501,10 @@ impl DatabaseViewOperation for DatabaseViewOperationImpl {
.map(|field_id| {
if !field_settings_map.contains_key(field_id) {
let field_settings =
FieldSettings::from_anymap(field_id, layout_type, &default_field_settings);
FieldSettings::from_any_map(field_id, layout_type, &default_field_settings);
(field_id.clone(), field_settings)
} else {
let field_settings = FieldSettings::from_anymap(
let field_settings = FieldSettings::from_any_map(
field_id,
layout_type,
field_settings_map.get(field_id).unwrap(),
@ -1539,7 +1539,7 @@ impl DatabaseViewOperation for DatabaseViewOperationImpl {
.unwrap()
.to_owned();
let field_settings =
FieldSettings::from_anymap(field_id, layout_type, &default_field_settings);
FieldSettings::from_any_map(field_id, layout_type, &default_field_settings);
FieldSettings {
field_id: field_settings.field_id.clone(),
visibility: visibility.unwrap_or(field_settings.visibility),

View File

@ -59,7 +59,7 @@ pub(crate) fn database_view_setting_pb_from_view(view: DatabaseView) -> Database
.into_inner()
.into_iter()
.map(|(field_id, field_settings)| {
FieldSettings::from_anymap(&field_id, view.layout, &field_settings)
FieldSettings::from_any_map(&field_id, view.layout, &field_settings)
})
.map(FieldSettingsPB::from)
.collect::<Vec<FieldSettingsPB>>();

View File

@ -18,7 +18,7 @@ pub const WIDTH: &str = "width";
pub const DEFAULT_WIDTH: i32 = 150;
impl FieldSettings {
pub fn from_anymap(
pub fn from_any_map(
field_id: &str,
layout_type: DatabaseLayout,
field_settings: &FieldSettingsMap,

View File

@ -3,24 +3,6 @@ use flowy_database2::services::field_settings::FieldSettingsChangesetParams;
use crate::database::database_editor::DatabaseEditorTest;
#[allow(clippy::enum_variant_names)]
pub enum FieldSettingsScript {
AssertFieldSettings {
field_ids: Vec<String>,
visibility: FieldVisibility,
width: i32,
},
AssertAllFieldSettings {
visibility: FieldVisibility,
width: i32,
},
UpdateFieldSettings {
field_id: String,
visibility: Option<FieldVisibility>,
width: Option<i32>,
},
}
pub struct FieldSettingsTest {
inner: DatabaseEditorTest,
}
@ -41,60 +23,54 @@ impl FieldSettingsTest {
Self { inner }
}
pub async fn run_scripts(&mut self, scripts: Vec<FieldSettingsScript>) {
for script in scripts {
self.run_script(script).await;
pub async fn assert_field_settings(
&mut self,
field_ids: Vec<String>,
visibility: FieldVisibility,
width: i32,
) {
let field_settings = self
.editor
.get_field_settings(&self.view_id, field_ids)
.await
.unwrap();
for field_setting in field_settings {
assert_eq!(field_setting.width, width);
assert_eq!(field_setting.visibility, visibility);
}
}
pub async fn run_script(&mut self, script: FieldSettingsScript) {
match script {
FieldSettingsScript::AssertFieldSettings {
field_ids,
visibility,
width,
} => {
let field_settings = self
.editor
.get_field_settings(&self.view_id, field_ids)
.await
.unwrap();
pub async fn assert_all_field_settings(&mut self, visibility: FieldVisibility, width: i32) {
let field_settings = self
.editor
.get_all_field_settings(&self.view_id)
.await
.unwrap();
for field_settings in field_settings.into_iter() {
assert_eq!(field_settings.width, width);
assert_eq!(field_settings.visibility, visibility);
}
},
FieldSettingsScript::AssertAllFieldSettings { visibility, width } => {
let field_settings = self
.editor
.get_all_field_settings(&self.view_id)
.await
.unwrap();
for field_settings in field_settings.into_iter() {
assert_eq!(field_settings.width, width);
assert_eq!(field_settings.visibility, visibility);
}
},
FieldSettingsScript::UpdateFieldSettings {
field_id,
visibility,
width,
} => {
let params = FieldSettingsChangesetParams {
view_id: self.view_id.clone(),
field_id,
visibility,
width,
};
let _ = self
.editor
.update_field_settings_with_changeset(params)
.await;
},
for field_setting in field_settings {
assert_eq!(field_setting.width, width);
assert_eq!(field_setting.visibility, visibility);
}
}
pub async fn update_field_settings(
&mut self,
field_id: String,
visibility: Option<FieldVisibility>,
width: Option<i32>,
) {
let params = FieldSettingsChangesetParams {
view_id: self.view_id.clone(),
field_id,
visibility,
width,
};
let _ = self
.editor
.update_field_settings_with_changeset(params)
.await;
}
}
impl std::ops::Deref for FieldSettingsTest {

View File

@ -2,19 +2,21 @@ use flowy_database2::entities::FieldType;
use flowy_database2::entities::FieldVisibility;
use flowy_database2::services::field_settings::DEFAULT_WIDTH;
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() {
async fn get_default_grid_field_settings() {
// grid
let mut test = FieldSettingsTest::new_grid().await;
let scripts = vec![AssertAllFieldSettings {
visibility: FieldVisibility::AlwaysShown,
width: DEFAULT_WIDTH,
}];
test.run_scripts(scripts).await;
test
.assert_all_field_settings(FieldVisibility::AlwaysShown, DEFAULT_WIDTH)
.await;
}
#[tokio::test]
async fn get_default_board_field_settings() {
// board
let mut test = FieldSettingsTest::new_board().await;
let non_primary_field_ids: Vec<String> = test
.get_fields()
@ -23,20 +25,25 @@ async fn get_default_field_settings() {
.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,
width: DEFAULT_WIDTH,
},
AssertFieldSettings {
field_ids: vec![primary_field_id.clone()],
visibility: FieldVisibility::AlwaysShown,
width: DEFAULT_WIDTH,
},
];
test.run_scripts(scripts).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::AlwaysShown,
DEFAULT_WIDTH,
)
.await;
}
#[tokio::test]
async fn get_default_calendar_field_settings() {
// calendar
let mut test = FieldSettingsTest::new_calendar().await;
let non_primary_field_ids: Vec<String> = test
.get_fields()
@ -45,19 +52,20 @@ async fn get_default_field_settings() {
.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,
width: DEFAULT_WIDTH,
},
AssertFieldSettings {
field_ids: vec![primary_field_id.clone()],
visibility: FieldVisibility::AlwaysShown,
width: DEFAULT_WIDTH,
},
];
test.run_scripts(scripts).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::AlwaysShown,
DEFAULT_WIDTH,
)
.await;
}
/// Update field settings for a field
@ -72,26 +80,40 @@ async fn update_field_settings_test() {
.collect();
let primary_field_id = test.get_first_field(FieldType::RichText).id;
let scripts = vec![
AssertFieldSettings {
field_ids: non_primary_field_ids,
visibility: FieldVisibility::HideWhenEmpty,
width: DEFAULT_WIDTH,
},
AssertFieldSettings {
field_ids: vec![primary_field_id.clone()],
visibility: FieldVisibility::AlwaysShown,
width: DEFAULT_WIDTH,
},
UpdateFieldSettings {
field_id: primary_field_id,
visibility: Some(FieldVisibility::HideWhenEmpty),
width: None,
},
AssertAllFieldSettings {
visibility: FieldVisibility::HideWhenEmpty,
width: DEFAULT_WIDTH,
},
];
test.run_scripts(scripts).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::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;
}