mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: add edit field type option helper
This commit is contained in:
@ -176,7 +176,7 @@ impl GridRowTest {
|
||||
FieldType::Number => {
|
||||
let field_rev = self.editor.get_field_rev(&cell_id.field_id).await.unwrap();
|
||||
let number_type_option = field_rev
|
||||
.get_type_option_entry::<NumberTypeOptionPB>(FieldType::Number.into())
|
||||
.get_type_option::<NumberTypeOptionPB>(FieldType::Number.into())
|
||||
.unwrap();
|
||||
let cell_data = self
|
||||
.editor
|
||||
|
@ -4,7 +4,7 @@ use crate::grid::field_test::util::*;
|
||||
use flowy_grid::entities::FieldChangesetParams;
|
||||
use flowy_grid::services::field::selection_type_option::SelectOptionPB;
|
||||
use flowy_grid::services::field::SingleSelectTypeOptionPB;
|
||||
use flowy_grid_data_model::revision::TypeOptionDataEntry;
|
||||
use flowy_grid_data_model::revision::TypeOptionDataFormat;
|
||||
|
||||
#[tokio::test]
|
||||
async fn grid_create_field() {
|
||||
@ -86,7 +86,7 @@ async fn grid_update_field() {
|
||||
let mut expected_field_rev = single_select_field.clone();
|
||||
expected_field_rev.frozen = true;
|
||||
expected_field_rev.width = 1000;
|
||||
expected_field_rev.insert_type_option_entry(&single_select_type_option);
|
||||
expected_field_rev.insert_type_option(&single_select_type_option);
|
||||
|
||||
let scripts = vec![
|
||||
CreateField { params },
|
||||
|
@ -12,7 +12,7 @@ pub fn create_text_field(grid_id: &str) -> (InsertFieldParams, FieldRevision) {
|
||||
let cloned_field_rev = field_rev.clone();
|
||||
|
||||
let type_option_data = field_rev
|
||||
.get_type_option_entry::<RichTextTypeOptionPB>(field_rev.ty)
|
||||
.get_type_option::<RichTextTypeOptionPB>(field_rev.ty)
|
||||
.unwrap()
|
||||
.protobuf_bytes()
|
||||
.to_vec();
|
||||
@ -45,7 +45,7 @@ pub fn create_single_select_field(grid_id: &str) -> (InsertFieldParams, FieldRev
|
||||
let field_rev = FieldBuilder::new(single_select).name("Name").visibility(true).build();
|
||||
let cloned_field_rev = field_rev.clone();
|
||||
let type_option_data = field_rev
|
||||
.get_type_option_entry::<SingleSelectTypeOptionPB>(field_rev.ty)
|
||||
.get_type_option::<SingleSelectTypeOptionPB>(field_rev.ty)
|
||||
.unwrap()
|
||||
.protobuf_bytes()
|
||||
.to_vec();
|
||||
|
@ -8,7 +8,7 @@ use flowy_grid::services::field::{
|
||||
use flowy_grid::services::row::{decode_cell_data_from_type_option_cell_data, CreateRowMetaBuilder};
|
||||
use flowy_grid_data_model::entities::{
|
||||
CellChangeset, FieldChangesetParams, FieldType, GridBlockInfoChangeset, GridBlockMetaSnapshot, RowMetaChangeset,
|
||||
TypeOptionDataEntry,
|
||||
TypeOptionDataFormat,
|
||||
};
|
||||
|
||||
#[tokio::test]
|
||||
|
@ -3,6 +3,7 @@ use flowy_grid::entities::{
|
||||
CreateRowParams, FieldChangesetParams, FieldType, GridLayout, GroupPB, MoveGroupParams, MoveGroupRowParams, RowPB,
|
||||
};
|
||||
use flowy_grid::services::cell::{delete_select_option_cell, insert_select_option_cell};
|
||||
use flowy_grid::services::field::{select_option_operation, SelectOptionOperation};
|
||||
use flowy_grid_data_model::revision::{FieldRevision, RowChangeset};
|
||||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
@ -212,6 +213,28 @@ impl GridGroupTest {
|
||||
.clone();
|
||||
return field;
|
||||
}
|
||||
|
||||
pub async fn get_single_select_field(&self) -> Arc<FieldRevision> {
|
||||
self.inner
|
||||
.field_revs
|
||||
.iter()
|
||||
.find(|field_rev| {
|
||||
let field_type: FieldType = field_rev.ty.into();
|
||||
field_type.is_single_select()
|
||||
})
|
||||
.unwrap()
|
||||
.clone()
|
||||
}
|
||||
|
||||
pub async fn edit_single_select_type_option(&self, f: impl FnOnce(Box<dyn SelectOptionOperation>)) {
|
||||
let single_select = self.get_single_select_field().await;
|
||||
let mut field_rev = self.editor.get_field_rev(&single_select.id).await.unwrap();
|
||||
let mut_field_rev = Arc::make_mut(&mut field_rev);
|
||||
let mut type_option = select_option_operation(mut_field_rev)?;
|
||||
f(type_option);
|
||||
mut_field_rev.insert_type_option(&*type_option);
|
||||
let _ = self.editor.replace_field(field_rev).await?;
|
||||
}
|
||||
}
|
||||
|
||||
impl std::ops::Deref for GridGroupTest {
|
||||
|
@ -5,7 +5,7 @@ use flowy_grid::services::row::CreateRowMetaPayload;
|
||||
use flowy_grid_data_model::entities::{
|
||||
BuildGridContext, CellChangeset, Field, FieldChangesetParams, FieldMeta, FieldOrder, FieldType,
|
||||
GridBlockInfoChangeset, GridBlockMetaSnapshot, InsertFieldParams, RowMeta, RowMetaChangeset, RowOrder,
|
||||
TypeOptionDataEntry,
|
||||
TypeOptionDataFormat,
|
||||
};
|
||||
use flowy_revision::REVISION_WRITE_INTERVAL_IN_MILLIS;
|
||||
use flowy_sync::client_grid::GridBuilder;
|
||||
|
Reference in New Issue
Block a user