script.rs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. use crate::grid::grid_editor::GridEditorTest;
  2. use flowy_grid::entities::MoveRowParams;
  3. pub enum GroupScript {
  4. MoveCard { from_row_id: String, to_row_id: String },
  5. AssertGroupCount(usize),
  6. }
  7. pub struct GridGroupTest {
  8. inner: GridEditorTest,
  9. }
  10. impl GridGroupTest {
  11. pub async fn new() -> Self {
  12. let editor_test = GridEditorTest::new().await;
  13. Self { inner: editor_test }
  14. }
  15. pub async fn run_scripts(&mut self, scripts: Vec<GroupScript>) {
  16. for script in scripts {
  17. self.run_script(script).await;
  18. }
  19. }
  20. pub async fn run_script(&mut self, script: GroupScript) {
  21. match script {
  22. GroupScript::MoveCard { from_row_id, to_row_id } => {
  23. let params = MoveRowParams {
  24. view_id: self.inner.grid_id.clone(),
  25. from_row_id,
  26. to_row_id,
  27. };
  28. let _ = self.editor.move_row(params).await.unwrap();
  29. }
  30. GroupScript::AssertGroupCount(count) => {
  31. //
  32. }
  33. }
  34. }
  35. }
  36. impl std::ops::Deref for GridGroupTest {
  37. type Target = GridEditorTest;
  38. fn deref(&self) -> &Self::Target {
  39. &self.inner
  40. }
  41. }
  42. impl std::ops::DerefMut for GridGroupTest {
  43. fn deref_mut(&mut self) -> &mut Self::Target {
  44. &mut self.inner
  45. }
  46. }