cell_test.rs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. use crate::grid::script::EditorScript::*;
  2. use crate::grid::script::*;
  3. use flowy_grid::services::field::{MultiSelectTypeOption, SelectOptionCellContentChangeset, SingleSelectTypeOption};
  4. use flowy_grid_data_model::entities::{CellChangeset, FieldType};
  5. #[tokio::test]
  6. async fn grid_cell_update() {
  7. let mut test = GridEditorTest::new().await;
  8. let field_revs = &test.field_revs;
  9. let row_revs = &test.row_revs;
  10. let grid_blocks = &test.grid_block_revs;
  11. // For the moment, We only have one block to store rows
  12. let block_id = &grid_blocks.first().unwrap().block_id;
  13. let mut scripts = vec![];
  14. for (_, row_rev) in row_revs.iter().enumerate() {
  15. for field_rev in field_revs {
  16. let data = match field_rev.field_type {
  17. FieldType::RichText => "".to_string(),
  18. FieldType::Number => "123".to_string(),
  19. FieldType::DateTime => make_date_cell_string("123"),
  20. FieldType::SingleSelect => {
  21. let type_option = SingleSelectTypeOption::from(field_rev);
  22. SelectOptionCellContentChangeset::from_insert(&type_option.options.first().unwrap().id).to_str()
  23. }
  24. FieldType::MultiSelect => {
  25. let type_option = MultiSelectTypeOption::from(field_rev);
  26. SelectOptionCellContentChangeset::from_insert(&type_option.options.first().unwrap().id).to_str()
  27. }
  28. FieldType::Checkbox => "1".to_string(),
  29. FieldType::URL => "1".to_string(),
  30. };
  31. scripts.push(UpdateCell {
  32. changeset: CellChangeset {
  33. grid_id: block_id.to_string(),
  34. row_id: row_rev.id.clone(),
  35. field_id: field_rev.id.clone(),
  36. cell_content_changeset: Some(data),
  37. },
  38. is_err: false,
  39. });
  40. }
  41. }
  42. test.run_scripts(scripts).await;
  43. }