| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  | use crate::grid::cell_test::script::CellScript::*;
 | 
					
						
							|  |  |  | use crate::grid::cell_test::script::GridCellTest;
 | 
					
						
							|  |  |  | use crate::grid::field_test::util::make_date_cell_string;
 | 
					
						
							| 
									
										
										
										
											2022-07-17 14:13:12 +08:00
										 |  |  | use flowy_grid::entities::{CellChangesetPB, FieldType};
 | 
					
						
							| 
									
										
										
										
											2022-07-13 11:09:13 +08:00
										 |  |  | use flowy_grid::services::field::selection_type_option::SelectOptionCellChangeset;
 | 
					
						
							| 
									
										
										
										
											2022-08-11 13:04:45 +08:00
										 |  |  | use flowy_grid::services::field::{MultiSelectTypeOptionPB, SingleSelectTypeOptionPB};
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #[tokio::test]
 | 
					
						
							|  |  |  | async fn grid_cell_update() {
 | 
					
						
							| 
									
										
										
										
											2022-07-11 17:15:16 +08:00
										 |  |  |     let mut test = GridCellTest::new().await;
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  |     let field_revs = &test.field_revs;
 | 
					
						
							|  |  |  |     let row_revs = &test.row_revs;
 | 
					
						
							| 
									
										
										
										
											2022-06-29 13:44:15 +08:00
										 |  |  |     let grid_blocks = &test.block_meta_revs;
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // For the moment, We only have one block to store rows
 | 
					
						
							|  |  |  |     let block_id = &grid_blocks.first().unwrap().block_id;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     let mut scripts = vec![];
 | 
					
						
							|  |  |  |     for (_, row_rev) in row_revs.iter().enumerate() {
 | 
					
						
							|  |  |  |         for field_rev in field_revs {
 | 
					
						
							| 
									
										
										
										
											2022-08-19 11:56:47 +08:00
										 |  |  |             let field_type: FieldType = field_rev.ty.into();
 | 
					
						
							| 
									
										
										
										
											2022-07-01 20:32:11 +08:00
										 |  |  |             let data = match field_type {
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  |                 FieldType::RichText => "".to_string(),
 | 
					
						
							|  |  |  |                 FieldType::Number => "123".to_string(),
 | 
					
						
							|  |  |  |                 FieldType::DateTime => make_date_cell_string("123"),
 | 
					
						
							|  |  |  |                 FieldType::SingleSelect => {
 | 
					
						
							| 
									
										
										
										
											2022-07-17 13:38:53 +08:00
										 |  |  |                     let type_option = SingleSelectTypeOptionPB::from(field_rev);
 | 
					
						
							| 
									
										
										
										
											2022-10-11 13:43:29 +08:00
										 |  |  |                     SelectOptionCellChangeset::from_insert_option_id(&type_option.options.first().unwrap().id).to_str()
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  |                 }
 | 
					
						
							|  |  |  |                 FieldType::MultiSelect => {
 | 
					
						
							| 
									
										
										
										
											2022-08-11 13:04:45 +08:00
										 |  |  |                     let type_option = MultiSelectTypeOptionPB::from(field_rev);
 | 
					
						
							| 
									
										
										
										
											2022-10-11 13:43:29 +08:00
										 |  |  |                     SelectOptionCellChangeset::from_insert_option_id(&type_option.options.first().unwrap().id).to_str()
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  |                 }
 | 
					
						
							|  |  |  |                 FieldType::Checkbox => "1".to_string(),
 | 
					
						
							|  |  |  |                 FieldType::URL => "1".to_string(),
 | 
					
						
							|  |  |  |             };
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             scripts.push(UpdateCell {
 | 
					
						
							| 
									
										
										
										
											2022-07-17 14:13:12 +08:00
										 |  |  |                 changeset: CellChangesetPB {
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  |                     grid_id: block_id.to_string(),
 | 
					
						
							|  |  |  |                     row_id: row_rev.id.clone(),
 | 
					
						
							|  |  |  |                     field_id: field_rev.id.clone(),
 | 
					
						
							| 
									
										
										
										
											2022-08-19 11:56:47 +08:00
										 |  |  |                     content: data,
 | 
					
						
							| 
									
										
										
										
											2022-06-20 10:24:43 +08:00
										 |  |  |                 },
 | 
					
						
							|  |  |  |                 is_err: false,
 | 
					
						
							|  |  |  |             });
 | 
					
						
							|  |  |  |         }
 | 
					
						
							|  |  |  |     }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     test.run_scripts(scripts).await;
 | 
					
						
							|  |  |  | }
 |