| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | use collab_database::views::DatabaseLayout;use flowy_database2::entities::FieldVisibility;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>,    layout_ty: DatabaseLayout,    visibility: FieldVisibility,  },  AssertAllFieldSettings {    layout_ty: DatabaseLayout,    visibility: FieldVisibility,  },  UpdateFieldSettings {    field_id: String,    visibility: Option<FieldVisibility>,  },}pub struct FieldSettingsTest {  inner: DatabaseEditorTest,}impl FieldSettingsTest {  pub async fn new_grid() -> Self {    let inner = DatabaseEditorTest::new_grid().await;    Self { inner }  }  pub async fn new_board() -> Self {    let inner = DatabaseEditorTest::new_board().await;    Self { inner }  }  pub async fn new_calendar() -> Self {    let inner = DatabaseEditorTest::new_calendar().await;    Self { inner }  }  pub async fn run_scripts(&mut self, scripts: Vec<FieldSettingsScript>) {    for script in scripts {      self.run_script(script).await;    }  }  pub async fn run_script(&mut self, script: FieldSettingsScript) {    match script {      FieldSettingsScript::AssertFieldSettings {        field_ids,        layout_ty,        visibility,      } => {        let field_settings = self          .editor          .get_field_settings(&self.view_id, layout_ty, field_ids)          .await          .unwrap();        for field_settings in field_settings.into_iter() {          assert_eq!(field_settings.visibility, visibility)        }      },      FieldSettingsScript::AssertAllFieldSettings {        layout_ty,        visibility,      } => {        let field_settings = self          .editor          .get_all_field_settings(&self.view_id, layout_ty)          .await          .unwrap();        for field_settings in field_settings.into_iter() {          assert_eq!(field_settings.visibility, visibility)        }      },      FieldSettingsScript::UpdateFieldSettings {        field_id,        visibility,      } => {        let params = FieldSettingsChangesetParams {          view_id: self.view_id.clone(),          field_id,          visibility,        };        let _ = self          .editor          .update_field_settings_with_changeset(params)          .await;      },    }  }}impl std::ops::Deref for FieldSettingsTest {  type Target = DatabaseEditorTest;  fn deref(&self) -> &Self::Target {    &self.inner  }}impl std::ops::DerefMut for FieldSettingsTest {  fn deref_mut(&mut self) -> &mut Self::Target {    &mut self.inner  }}
 |