mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: fix test
This commit is contained in:
@ -1,10 +1,10 @@
|
||||
use crate::grid::grid_editor::GridEditorTest;
|
||||
use flowy_grid::entities::{FieldChangesetParams, InsertFieldParams};
|
||||
use flowy_grid::entities::{CreateFieldParams, FieldChangesetParams};
|
||||
use flowy_grid_data_model::revision::FieldRevision;
|
||||
|
||||
pub enum FieldScript {
|
||||
CreateField {
|
||||
params: InsertFieldParams,
|
||||
params: CreateFieldParams,
|
||||
},
|
||||
UpdateField {
|
||||
changeset: FieldChangesetParams,
|
||||
@ -13,9 +13,9 @@ pub enum FieldScript {
|
||||
field_rev: FieldRevision,
|
||||
},
|
||||
AssertFieldCount(usize),
|
||||
AssertFieldEqual {
|
||||
AssertFieldTypeOptionEqual {
|
||||
field_index: usize,
|
||||
field_rev: FieldRevision,
|
||||
expected_type_option_data: String,
|
||||
},
|
||||
}
|
||||
|
||||
@ -46,11 +46,11 @@ impl GridFieldTest {
|
||||
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_count += 1;
|
||||
self.editor
|
||||
.create_new_field_rev(¶ms.field_type, params.type_option_data)
|
||||
.await
|
||||
.unwrap();
|
||||
self.field_revs = self.editor.get_field_revs(None).await.unwrap();
|
||||
assert_eq!(self.field_count, self.field_revs.len());
|
||||
}
|
||||
@ -70,9 +70,14 @@ impl GridFieldTest {
|
||||
FieldScript::AssertFieldCount(count) => {
|
||||
assert_eq!(self.editor.get_field_revs(None).await.unwrap().len(), count);
|
||||
}
|
||||
FieldScript::AssertFieldEqual { field_index, field_rev } => {
|
||||
FieldScript::AssertFieldTypeOptionEqual {
|
||||
field_index,
|
||||
expected_type_option_data,
|
||||
} => {
|
||||
let field_revs = self.editor.get_field_revs(None).await.unwrap();
|
||||
assert_eq!(field_revs[field_index].as_ref(), &field_rev);
|
||||
let field_rev = field_revs[field_index].as_ref();
|
||||
let type_option_data = field_rev.get_type_option_str(field_rev.ty.clone()).unwrap();
|
||||
assert_eq!(type_option_data, expected_type_option_data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,9 +13,9 @@ async fn grid_create_field() {
|
||||
|
||||
let scripts = vec![
|
||||
CreateField { params },
|
||||
AssertFieldEqual {
|
||||
AssertFieldTypeOptionEqual {
|
||||
field_index: test.field_count(),
|
||||
field_rev,
|
||||
expected_type_option_data: field_rev.get_type_option_str(field_rev.ty.clone()).unwrap(),
|
||||
},
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
@ -23,9 +23,9 @@ async fn grid_create_field() {
|
||||
let (params, field_rev) = create_single_select_field(&test.grid_id());
|
||||
let scripts = vec![
|
||||
CreateField { params },
|
||||
AssertFieldEqual {
|
||||
AssertFieldTypeOptionEqual {
|
||||
field_index: test.field_count(),
|
||||
field_rev,
|
||||
expected_type_option_data: field_rev.get_type_option_str(field_rev.ty.clone()).unwrap(),
|
||||
},
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
@ -39,7 +39,6 @@ async fn grid_create_duplicate_field() {
|
||||
let expected_field_count = field_count + 1;
|
||||
let scripts = vec![
|
||||
CreateField { params: params.clone() },
|
||||
CreateField { params },
|
||||
AssertFieldCount(expected_field_count),
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
@ -48,7 +47,12 @@ async fn grid_create_duplicate_field() {
|
||||
#[tokio::test]
|
||||
async fn grid_update_field_with_empty_change() {
|
||||
let mut test = GridFieldTest::new().await;
|
||||
let (params, field_rev) = create_single_select_field(&test.grid_id());
|
||||
let (params, _) = create_single_select_field(&test.grid_id());
|
||||
let create_field_index = test.field_count();
|
||||
let scripts = vec![CreateField { params }];
|
||||
test.run_scripts(scripts).await;
|
||||
|
||||
let field_rev = (&*test.field_revs.clone().pop().unwrap()).clone();
|
||||
let changeset = FieldChangesetParams {
|
||||
field_id: field_rev.id.clone(),
|
||||
grid_id: test.grid_id(),
|
||||
@ -56,11 +60,10 @@ async fn grid_update_field_with_empty_change() {
|
||||
};
|
||||
|
||||
let scripts = vec![
|
||||
CreateField { params },
|
||||
UpdateField { changeset },
|
||||
AssertFieldEqual {
|
||||
field_index: test.field_count(),
|
||||
field_rev,
|
||||
AssertFieldTypeOptionEqual {
|
||||
field_index: create_field_index,
|
||||
expected_type_option_data: field_rev.get_type_option_str(field_rev.ty.clone()).unwrap(),
|
||||
},
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
@ -69,10 +72,15 @@ async fn grid_update_field_with_empty_change() {
|
||||
#[tokio::test]
|
||||
async fn grid_update_field() {
|
||||
let mut test = GridFieldTest::new().await;
|
||||
let (params, single_select_field) = create_single_select_field(&test.grid_id());
|
||||
|
||||
let (params, _) = create_single_select_field(&test.grid_id());
|
||||
let scripts = vec![CreateField { params }];
|
||||
let create_field_index = test.field_count();
|
||||
test.run_scripts(scripts).await;
|
||||
//
|
||||
let single_select_field = (&*test.field_revs.clone().pop().unwrap()).clone();
|
||||
let mut single_select_type_option = SingleSelectTypeOptionPB::from(&single_select_field);
|
||||
single_select_type_option.options.push(SelectOptionPB::new("Unknown"));
|
||||
|
||||
let changeset = FieldChangesetParams {
|
||||
field_id: single_select_field.id.clone(),
|
||||
grid_id: test.grid_id(),
|
||||
@ -89,11 +97,12 @@ async fn grid_update_field() {
|
||||
expected_field_rev.insert_type_option(&single_select_type_option);
|
||||
|
||||
let scripts = vec![
|
||||
CreateField { params },
|
||||
UpdateField { changeset },
|
||||
AssertFieldEqual {
|
||||
field_index: test.field_count(),
|
||||
field_rev: expected_field_rev,
|
||||
AssertFieldTypeOptionEqual {
|
||||
field_index: create_field_index,
|
||||
expected_type_option_data: expected_field_rev
|
||||
.get_type_option_str(expected_field_rev.ty.clone())
|
||||
.unwrap(),
|
||||
},
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
@ -103,9 +112,12 @@ async fn grid_update_field() {
|
||||
async fn grid_delete_field() {
|
||||
let mut test = GridFieldTest::new().await;
|
||||
let original_field_count = test.field_count();
|
||||
let (params, text_field_rev) = create_text_field(&test.grid_id());
|
||||
let (params, _) = create_text_field(&test.grid_id());
|
||||
let scripts = vec![CreateField { params }];
|
||||
test.run_scripts(scripts).await;
|
||||
|
||||
let text_field_rev = (&*test.field_revs.clone().pop().unwrap()).clone();
|
||||
let scripts = vec![
|
||||
CreateField { params },
|
||||
DeleteField {
|
||||
field_rev: text_field_rev,
|
||||
},
|
||||
|
@ -3,8 +3,8 @@ use flowy_grid::services::field::selection_type_option::SelectOptionPB;
|
||||
use flowy_grid::services::field::*;
|
||||
use flowy_grid_data_model::revision::*;
|
||||
|
||||
pub fn create_text_field(grid_id: &str) -> (InsertFieldParams, FieldRevision) {
|
||||
let field_rev = FieldBuilder::new(RichTextTypeOptionBuilder::default())
|
||||
pub fn create_text_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
|
||||
let mut field_rev = FieldBuilder::new(RichTextTypeOptionBuilder::default())
|
||||
.name("Name")
|
||||
.visibility(true)
|
||||
.build();
|
||||
@ -17,32 +17,23 @@ pub fn create_text_field(grid_id: &str) -> (InsertFieldParams, FieldRevision) {
|
||||
.protobuf_bytes()
|
||||
.to_vec();
|
||||
|
||||
let field = FieldPB {
|
||||
id: field_rev.id,
|
||||
name: field_rev.name,
|
||||
desc: field_rev.desc,
|
||||
field_type: field_rev.ty.into(),
|
||||
frozen: field_rev.frozen,
|
||||
visibility: field_rev.visibility,
|
||||
width: field_rev.width,
|
||||
is_primary: false,
|
||||
};
|
||||
let type_option_builder = type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
|
||||
field_rev.insert_type_option(type_option_builder.data_format());
|
||||
|
||||
let params = InsertFieldParams {
|
||||
let params = CreateFieldParams {
|
||||
grid_id: grid_id.to_owned(),
|
||||
field,
|
||||
type_option_data,
|
||||
start_field_id: None,
|
||||
field_type: field_rev.ty.into(),
|
||||
type_option_data: Some(type_option_data),
|
||||
};
|
||||
(params, cloned_field_rev)
|
||||
}
|
||||
|
||||
pub fn create_single_select_field(grid_id: &str) -> (InsertFieldParams, FieldRevision) {
|
||||
pub fn create_single_select_field(grid_id: &str) -> (CreateFieldParams, FieldRevision) {
|
||||
let single_select = SingleSelectTypeOptionBuilder::default()
|
||||
.add_option(SelectOptionPB::new("Done"))
|
||||
.add_option(SelectOptionPB::new("Progress"));
|
||||
|
||||
let field_rev = FieldBuilder::new(single_select).name("Name").visibility(true).build();
|
||||
let mut 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::<SingleSelectTypeOptionPB>(field_rev.ty)
|
||||
@ -50,22 +41,13 @@ pub fn create_single_select_field(grid_id: &str) -> (InsertFieldParams, FieldRev
|
||||
.protobuf_bytes()
|
||||
.to_vec();
|
||||
|
||||
let field = FieldPB {
|
||||
id: field_rev.id,
|
||||
name: field_rev.name,
|
||||
desc: field_rev.desc,
|
||||
field_type: field_rev.ty.into(),
|
||||
frozen: field_rev.frozen,
|
||||
visibility: field_rev.visibility,
|
||||
width: field_rev.width,
|
||||
is_primary: false,
|
||||
};
|
||||
let type_option_builder = type_option_builder_from_bytes(type_option_data.clone(), &field_rev.ty.into());
|
||||
field_rev.insert_type_option(type_option_builder.data_format());
|
||||
|
||||
let params = InsertFieldParams {
|
||||
let params = CreateFieldParams {
|
||||
grid_id: grid_id.to_owned(),
|
||||
field,
|
||||
type_option_data,
|
||||
start_field_id: None,
|
||||
field_type: field_rev.ty.into(),
|
||||
type_option_data: Some(type_option_data),
|
||||
};
|
||||
(params, cloned_field_rev)
|
||||
}
|
||||
|
Reference in New Issue
Block a user