| 
									
										
										
										
											2023-02-26 16:27:17 +08:00
										 |  |  | use crate::database::database_editor::DatabaseEditorTest;
 | 
					
						
							| 
									
										
										
										
											2023-01-31 08:28:31 +08:00
										 |  |  | use flowy_database::entities::CellChangesetPB;
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | pub enum CellScript {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   UpdateCell {
 | 
					
						
							|  |  |  |     changeset: CellChangesetPB,
 | 
					
						
							|  |  |  |     is_err: bool,
 | 
					
						
							|  |  |  |   },
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-02 23:02:49 +08:00
										 |  |  | pub struct DatabaseCellTest {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   inner: DatabaseEditorTest,
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-02 23:02:49 +08:00
										 |  |  | impl DatabaseCellTest {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   pub async fn new() -> Self {
 | 
					
						
							| 
									
										
										
										
											2023-02-26 16:27:17 +08:00
										 |  |  |     let inner = DatabaseEditorTest::new_grid().await;
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |     Self { inner }
 | 
					
						
							|  |  |  |   }
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   pub async fn run_scripts(&mut self, scripts: Vec<CellScript>) {
 | 
					
						
							|  |  |  |     for script in scripts {
 | 
					
						
							|  |  |  |       self.run_script(script).await;
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   pub async fn run_script(&mut self, script: CellScript) {
 | 
					
						
							|  |  |  |     // let grid_manager = self.sdk.grid_manager.clone();
 | 
					
						
							|  |  |  |     // let pool = self.sdk.user_session.db_pool().unwrap();
 | 
					
						
							|  |  |  |     // let rev_manager = self.editor.rev_manager();
 | 
					
						
							|  |  |  |     // let _cache = rev_manager.revision_cache().await;
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |     match script {
 | 
					
						
							|  |  |  |       CellScript::UpdateCell { changeset, is_err } => {
 | 
					
						
							|  |  |  |         let result = self
 | 
					
						
							|  |  |  |           .editor
 | 
					
						
							|  |  |  |           .update_cell_with_changeset(
 | 
					
						
							|  |  |  |             &changeset.row_id,
 | 
					
						
							|  |  |  |             &changeset.field_id,
 | 
					
						
							|  |  |  |             changeset.type_cell_data,
 | 
					
						
							|  |  |  |           )
 | 
					
						
							|  |  |  |           .await;
 | 
					
						
							|  |  |  |         if is_err {
 | 
					
						
							|  |  |  |           assert!(result.is_err())
 | 
					
						
							|  |  |  |         } else {
 | 
					
						
							|  |  |  |           result.unwrap();
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  |         }
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |       }, // CellScript::AssertGridRevisionPad => {
 | 
					
						
							|  |  |  |          //     sleep(Duration::from_millis(2 * REVISION_WRITE_INTERVAL_IN_MILLIS)).await;
 | 
					
						
							|  |  |  |          //     let mut grid_rev_manager = grid_manager.make_grid_rev_manager(&self.grid_id, pool.clone()).unwrap();
 | 
					
						
							|  |  |  |          //     let grid_pad = grid_rev_manager.load::<GridPadBuilder>(None).await.unwrap();
 | 
					
						
							|  |  |  |          //     println!("{}", grid_pad.delta_str());
 | 
					
						
							|  |  |  |          // }
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  |     }
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   }
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-02 23:02:49 +08:00
										 |  |  | impl std::ops::Deref for DatabaseCellTest {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   type Target = DatabaseEditorTest;
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   fn deref(&self) -> &Self::Target {
 | 
					
						
							|  |  |  |     &self.inner
 | 
					
						
							|  |  |  |   }
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-02 23:02:49 +08:00
										 |  |  | impl std::ops::DerefMut for DatabaseCellTest {
 | 
					
						
							| 
									
										
										
										
											2023-02-13 09:29:49 +08:00
										 |  |  |   fn deref_mut(&mut self) -> &mut Self::Target {
 | 
					
						
							|  |  |  |     &mut self.inner
 | 
					
						
							|  |  |  |   }
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | }
 |