| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- use crate::grid::grid_editor::GridEditorTest;
 
- use flowy_grid::entities::InsertFieldParams;
 
- use flowy_grid_data_model::revision::FieldRevision;
 
- use flowy_sync::entities::grid::FieldChangesetParams;
 
- pub enum FieldScript {
 
-     CreateField {
 
-         params: InsertFieldParams,
 
-     },
 
-     UpdateField {
 
-         changeset: FieldChangesetParams,
 
-     },
 
-     DeleteField {
 
-         field_rev: FieldRevision,
 
-     },
 
-     AssertFieldCount(usize),
 
-     AssertFieldEqual {
 
-         field_index: usize,
 
-         field_rev: FieldRevision,
 
-     },
 
- }
 
- pub struct GridFieldTest {
 
-     inner: GridEditorTest,
 
- }
 
- impl GridFieldTest {
 
-     pub async fn new() -> Self {
 
-         let editor_test = GridEditorTest::new().await;
 
-         Self { inner: editor_test }
 
-     }
 
-     pub fn grid_id(&self) -> String {
 
-         self.grid_id.clone()
 
-     }
 
-     pub fn field_count(&self) -> usize {
 
-         self.field_count
 
-     }
 
-     pub async fn run_scripts(&mut self, scripts: Vec<FieldScript>) {
 
-         for script in scripts {
 
-             self.run_script(script).await;
 
-         }
 
-     }
 
-     pub async fn run_script(&mut self, script: FieldScript) {
 
-         match script {
 
-             FieldScript::CreateField { params } => {
 
-                 if !self.editor.contain_field(¶ms.field.id).await {
 
-                     self.field_count += 1;
 
-                 }
 
-                 self.editor.insert_field(params).await.unwrap();
 
-                 self.field_revs = self.editor.get_field_revs(None).await.unwrap();
 
-                 assert_eq!(self.field_count, self.field_revs.len());
 
-             }
 
-             FieldScript::UpdateField { changeset: change } => {
 
-                 self.editor.update_field(change).await.unwrap();
 
-                 self.field_revs = self.editor.get_field_revs(None).await.unwrap();
 
-             }
 
-             FieldScript::DeleteField { field_rev } => {
 
-                 if self.editor.contain_field(&field_rev.id).await {
 
-                     self.field_count -= 1;
 
-                 }
 
-                 self.editor.delete_field(&field_rev.id).await.unwrap();
 
-                 self.field_revs = self.editor.get_field_revs(None).await.unwrap();
 
-                 assert_eq!(self.field_count, self.field_revs.len());
 
-             }
 
-             FieldScript::AssertFieldCount(count) => {
 
-                 assert_eq!(self.editor.get_field_revs(None).await.unwrap().len(), count);
 
-             }
 
-             FieldScript::AssertFieldEqual { field_index, field_rev } => {
 
-                 let field_revs = self.editor.get_field_revs(None).await.unwrap();
 
-                 assert_eq!(field_revs[field_index].as_ref(), &field_rev);
 
-             }
 
-         }
 
-     }
 
- }
 
- impl std::ops::Deref for GridFieldTest {
 
-     type Target = GridEditorTest;
 
-     fn deref(&self) -> &Self::Target {
 
-         &self.inner
 
-     }
 
- }
 
- impl std::ops::DerefMut for GridFieldTest {
 
-     fn deref_mut(&mut self) -> &mut Self::Target {
 
-         &mut self.inner
 
-     }
 
- }
 
 
  |