grid_test.rs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. use crate::grid::script::EditorScript::*;
  2. use crate::grid::script::*;
  3. use flowy_grid::services::field::{SelectOption, SingleSelectDescription};
  4. use flowy_grid_data_model::entities::FieldChangeset;
  5. #[tokio::test]
  6. async fn default_grid_test() {
  7. let scripts = vec![AssertFieldCount(2), AssertGridMetaPad];
  8. GridEditorTest::new().await.run_scripts(scripts).await;
  9. }
  10. #[tokio::test]
  11. async fn grid_create_field() {
  12. let text_field = create_text_field();
  13. let single_select_field = create_single_select_field();
  14. let scripts = vec![
  15. AssertFieldCount(2),
  16. CreateField {
  17. field: text_field.clone(),
  18. },
  19. AssertFieldEqual {
  20. field_index: 2,
  21. field: text_field,
  22. },
  23. AssertFieldCount(3),
  24. CreateField {
  25. field: single_select_field.clone(),
  26. },
  27. AssertFieldEqual {
  28. field_index: 3,
  29. field: single_select_field,
  30. },
  31. AssertFieldCount(4),
  32. ];
  33. GridEditorTest::new().await.run_scripts(scripts).await;
  34. }
  35. #[tokio::test]
  36. async fn grid_update_field_with_empty_change() {
  37. let single_select_field = create_single_select_field();
  38. let change = FieldChangeset {
  39. field_id: single_select_field.id.clone(),
  40. name: None,
  41. desc: None,
  42. field_type: None,
  43. frozen: None,
  44. visibility: None,
  45. width: None,
  46. type_options: None,
  47. };
  48. let scripts = vec![
  49. CreateField {
  50. field: single_select_field.clone(),
  51. },
  52. UpdateField { change },
  53. AssertFieldEqual {
  54. field_index: 2,
  55. field: single_select_field,
  56. },
  57. ];
  58. GridEditorTest::new().await.run_scripts(scripts).await;
  59. }
  60. #[tokio::test]
  61. async fn grid_update_field() {
  62. let single_select_field = create_single_select_field();
  63. let mut cloned_field = single_select_field.clone();
  64. let mut single_select_type_options = SingleSelectDescription::from(&single_select_field);
  65. single_select_type_options.options.push(SelectOption::new("Unknown"));
  66. let change = FieldChangeset {
  67. field_id: single_select_field.id.clone(),
  68. name: None,
  69. desc: None,
  70. field_type: None,
  71. frozen: Some(true),
  72. visibility: None,
  73. width: Some(1000),
  74. type_options: Some(single_select_type_options.clone().into()),
  75. };
  76. cloned_field.frozen = true;
  77. cloned_field.width = 1000;
  78. cloned_field.type_options = single_select_type_options.into();
  79. let scripts = vec![
  80. CreateField {
  81. field: single_select_field.clone(),
  82. },
  83. UpdateField { change },
  84. AssertFieldEqual {
  85. field_index: 2,
  86. field: cloned_field,
  87. },
  88. AssertGridMetaPad,
  89. ];
  90. GridEditorTest::new().await.run_scripts(scripts).await;
  91. }