row_test.rs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. use crate::grid::block_test::script::GridRowTest;
  2. use crate::grid::block_test::script::RowScript::*;
  3. use flowy_grid_data_model::revision::RowMetaChangeset;
  4. #[tokio::test]
  5. async fn grid_create_row_count_test() {
  6. let mut test = GridRowTest::new().await;
  7. let scripts = vec![
  8. AssertRowCount(3),
  9. CreateEmptyRow,
  10. CreateEmptyRow,
  11. CreateRow {
  12. row_rev: test.row_builder().build(),
  13. },
  14. AssertRowCount(6),
  15. ];
  16. test.run_scripts(scripts).await;
  17. }
  18. #[tokio::test]
  19. async fn grid_update_row() {
  20. let mut test = GridRowTest::new().await;
  21. let row_rev = test.row_builder().build();
  22. let changeset = RowMetaChangeset {
  23. row_id: row_rev.id.clone(),
  24. height: None,
  25. visibility: None,
  26. cell_by_field_id: Default::default(),
  27. };
  28. let scripts = vec![AssertRowCount(3), CreateRow { row_rev }, UpdateRow { changeset }];
  29. test.run_scripts(scripts).await;
  30. let expected_row = test.last_row().unwrap();
  31. let scripts = vec![AssertRow { expected_row }, AssertRowCount(4)];
  32. test.run_scripts(scripts).await;
  33. }
  34. #[tokio::test]
  35. async fn grid_delete_row() {
  36. let mut test = GridRowTest::new().await;
  37. let row_1 = test.row_builder().build();
  38. let row_2 = test.row_builder().build();
  39. let row_ids = vec![row_1.id.clone(), row_2.id.clone()];
  40. let scripts = vec![
  41. AssertRowCount(3),
  42. CreateRow { row_rev: row_1 },
  43. CreateRow { row_rev: row_2 },
  44. AssertBlockCount(1),
  45. AssertBlock {
  46. block_index: 0,
  47. row_count: 5,
  48. start_row_index: 0,
  49. },
  50. DeleteRows { row_ids },
  51. AssertBlock {
  52. block_index: 0,
  53. row_count: 3,
  54. start_row_index: 0,
  55. },
  56. ];
  57. test.run_scripts(scripts).await;
  58. }
  59. #[tokio::test]
  60. async fn grid_row_add_cells_test() {
  61. let mut test = GridRowTest::new().await;
  62. let mut builder = test.row_builder();
  63. builder.insert_text_cell("hello world");
  64. builder.insert_number_cell("18,443");
  65. builder.insert_date_cell("1647251762");
  66. builder.insert_single_select_cell(|options| options.first().unwrap());
  67. builder.insert_multi_select_cell(|options| options);
  68. builder.insert_checkbox_cell("false");
  69. builder.insert_url_cell("1");
  70. let row_rev = builder.build();
  71. let scripts = vec![CreateRow { row_rev }];
  72. test.run_scripts(scripts).await;
  73. }