script.rs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. use collab_database::rows::RowId;
  2. use flowy_database2::entities::CellChangesetPB;
  3. use crate::database::database_editor::DatabaseEditorTest;
  4. pub enum CellScript {
  5. UpdateCell {
  6. changeset: CellChangesetPB,
  7. is_err: bool,
  8. },
  9. }
  10. pub struct DatabaseCellTest {
  11. inner: DatabaseEditorTest,
  12. }
  13. impl DatabaseCellTest {
  14. pub async fn new() -> Self {
  15. let inner = DatabaseEditorTest::new_grid().await;
  16. Self { inner }
  17. }
  18. pub async fn run_scripts(&mut self, scripts: Vec<CellScript>) {
  19. for script in scripts {
  20. self.run_script(script).await;
  21. }
  22. }
  23. pub async fn run_script(&mut self, script: CellScript) {
  24. // let grid_manager = self.sdk.grid_manager.clone();
  25. // let pool = self.sdk.user_session.db_pool().unwrap();
  26. // let rev_manager = self.editor.rev_manager();
  27. // let _cache = rev_manager.revision_cache().await;
  28. match script {
  29. CellScript::UpdateCell {
  30. changeset,
  31. is_err: _,
  32. } => {
  33. self
  34. .editor
  35. .update_cell_with_changeset(
  36. &self.view_id,
  37. RowId::from(changeset.row_id),
  38. &changeset.field_id,
  39. changeset.cell_changeset,
  40. )
  41. .await
  42. .unwrap();
  43. }, // CellScript::AssertGridRevisionPad => {
  44. // sleep(Duration::from_millis(2 * REVISION_WRITE_INTERVAL_IN_MILLIS)).await;
  45. // let mut grid_rev_manager = grid_manager.make_grid_rev_manager(&self.grid_id, pool.clone()).unwrap();
  46. // let grid_pad = grid_rev_manager.load::<GridPadBuilder>(None).await.unwrap();
  47. // println!("{}", grid_pad.delta_str());
  48. // }
  49. }
  50. }
  51. }
  52. impl std::ops::Deref for DatabaseCellTest {
  53. type Target = DatabaseEditorTest;
  54. fn deref(&self) -> &Self::Target {
  55. &self.inner
  56. }
  57. }
  58. impl std::ops::DerefMut for DatabaseCellTest {
  59. fn deref_mut(&mut self) -> &mut Self::Target {
  60. &mut self.inner
  61. }
  62. }