mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: bump up yrs to 0.17.1 (#4078)
* chore: bump yrs * chore: update rev
This commit is contained in:
@ -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),
|
||||
|
@ -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>>();
|
||||
|
@ -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,
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user