| 
									
										
										
										
											2024-04-13 16:48:28 +08:00
										 |  |  | use flowy_database2::entities::{FieldSettingsChangesetPB, FieldVisibility};
 | 
					
						
							| 
									
										
										
										
											2023-08-27 22:31:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | use crate::database::database_editor::DatabaseEditorTest;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | pub struct FieldSettingsTest {
 | 
					
						
							|  |  |  |   inner: DatabaseEditorTest,
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | impl FieldSettingsTest {
 | 
					
						
							|  |  |  |   pub async fn new_grid() -> Self {
 | 
					
						
							|  |  |  |     let inner = DatabaseEditorTest::new_grid().await;
 | 
					
						
							|  |  |  |     Self { inner }
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   pub async fn new_board() -> Self {
 | 
					
						
							|  |  |  |     let inner = DatabaseEditorTest::new_board().await;
 | 
					
						
							|  |  |  |     Self { inner }
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   pub async fn new_calendar() -> Self {
 | 
					
						
							|  |  |  |     let inner = DatabaseEditorTest::new_calendar().await;
 | 
					
						
							|  |  |  |     Self { inner }
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-04 14:20:07 -08:00
										 |  |  |   pub async fn assert_field_settings(
 | 
					
						
							|  |  |  |     &mut self,
 | 
					
						
							|  |  |  |     field_ids: Vec<String>,
 | 
					
						
							|  |  |  |     visibility: FieldVisibility,
 | 
					
						
							|  |  |  |     width: i32,
 | 
					
						
							|  |  |  |   ) {
 | 
					
						
							|  |  |  |     let field_settings = self
 | 
					
						
							|  |  |  |       .editor
 | 
					
						
							|  |  |  |       .get_field_settings(&self.view_id, field_ids)
 | 
					
						
							|  |  |  |       .await
 | 
					
						
							|  |  |  |       .unwrap();
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for field_setting in field_settings {
 | 
					
						
							|  |  |  |       assert_eq!(field_setting.width, width);
 | 
					
						
							|  |  |  |       assert_eq!(field_setting.visibility, visibility);
 | 
					
						
							| 
									
										
										
										
											2023-08-27 22:31:32 +08:00
										 |  |  |     }
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-04 14:20:07 -08:00
										 |  |  |   pub async fn assert_all_field_settings(&mut self, visibility: FieldVisibility, width: i32) {
 | 
					
						
							|  |  |  |     let field_settings = self
 | 
					
						
							|  |  |  |       .editor
 | 
					
						
							|  |  |  |       .get_all_field_settings(&self.view_id)
 | 
					
						
							|  |  |  |       .await
 | 
					
						
							|  |  |  |       .unwrap();
 | 
					
						
							| 
									
										
										
										
											2023-08-27 22:31:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-04 14:20:07 -08:00
										 |  |  |     for field_setting in field_settings {
 | 
					
						
							|  |  |  |       assert_eq!(field_setting.width, width);
 | 
					
						
							|  |  |  |       assert_eq!(field_setting.visibility, visibility);
 | 
					
						
							| 
									
										
										
										
											2023-08-27 22:31:32 +08:00
										 |  |  |     }
 | 
					
						
							|  |  |  |   }
 | 
					
						
							| 
									
										
										
										
											2023-12-04 14:20:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   pub async fn update_field_settings(
 | 
					
						
							|  |  |  |     &mut self,
 | 
					
						
							|  |  |  |     field_id: String,
 | 
					
						
							|  |  |  |     visibility: Option<FieldVisibility>,
 | 
					
						
							|  |  |  |     width: Option<i32>,
 | 
					
						
							|  |  |  |   ) {
 | 
					
						
							| 
									
										
										
										
											2024-04-13 16:48:28 +08:00
										 |  |  |     let params = FieldSettingsChangesetPB {
 | 
					
						
							| 
									
										
										
										
											2023-12-04 14:20:07 -08:00
										 |  |  |       view_id: self.view_id.clone(),
 | 
					
						
							|  |  |  |       field_id,
 | 
					
						
							|  |  |  |       visibility,
 | 
					
						
							|  |  |  |       width,
 | 
					
						
							| 
									
										
										
										
											2024-04-13 16:48:28 +08:00
										 |  |  |       wrap_cell_content: None,
 | 
					
						
							| 
									
										
										
										
											2023-12-04 14:20:07 -08:00
										 |  |  |     };
 | 
					
						
							|  |  |  |     let _ = self
 | 
					
						
							|  |  |  |       .editor
 | 
					
						
							|  |  |  |       .update_field_settings_with_changeset(params)
 | 
					
						
							|  |  |  |       .await;
 | 
					
						
							|  |  |  |   }
 | 
					
						
							| 
									
										
										
										
											2023-08-27 22:31:32 +08:00
										 |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | impl std::ops::Deref for FieldSettingsTest {
 | 
					
						
							|  |  |  |   type Target = DatabaseEditorTest;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   fn deref(&self) -> &Self::Target {
 | 
					
						
							|  |  |  |     &self.inner
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | impl std::ops::DerefMut for FieldSettingsTest {
 | 
					
						
							|  |  |  |   fn deref_mut(&mut self) -> &mut Self::Target {
 | 
					
						
							|  |  |  |     &mut self.inner
 | 
					
						
							|  |  |  |   }
 | 
					
						
							|  |  |  | }
 |