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
- }
- }
|