diff --git a/base/src/test/user_model/test_clear_cells.rs b/base/src/test/user_model/test_clear_cells.rs index ef0685c..91356dc 100644 --- a/base/src/test/user_model/test_clear_cells.rs +++ b/base/src/test/user_model/test_clear_cells.rs @@ -89,3 +89,67 @@ fn clear_all_empty_cell() { model.undo().unwrap(); assert_eq!(model.get_formatted_cell_value(0, 1, 1), Ok("".to_string())); } + +#[test] +fn issue_454() { + let mut model = UserModel::new_empty("model", "en", "UTC").unwrap(); + model + .set_user_input( + 0, + 1, + 1, + "Le presbytère n'a rien perdu de son charme, ni le jardin de son éclat.", + ) + .unwrap(); + model.set_user_input(0, 1, 2, "=ISTEXT(A1)").unwrap(); + assert_eq!( + model.get_formatted_cell_value(0, 1, 2), + Ok("TRUE".to_string()) + ); + model + .range_clear_contents(&Area { + sheet: 0, + row: 1, + column: 1, + width: 1, + height: 1, + }) + .unwrap(); + assert_eq!( + model.get_formatted_cell_value(0, 1, 2), + Ok("FALSE".to_string()) + ); + model.undo().unwrap(); +} + +#[test] +fn issue_454b() { + let mut model = UserModel::new_empty("model", "en", "UTC").unwrap(); + model + .set_user_input( + 0, + 1, + 1, + "Le presbytère n'a rien perdu de son charme, ni le jardin de son éclat.", + ) + .unwrap(); + model.set_user_input(0, 1, 2, "=ISTEXT(A1)").unwrap(); + assert_eq!( + model.get_formatted_cell_value(0, 1, 2), + Ok("TRUE".to_string()) + ); + model + .range_clear_all(&Area { + sheet: 0, + row: 1, + column: 1, + width: 1, + height: 1, + }) + .unwrap(); + assert_eq!( + model.get_formatted_cell_value(0, 1, 2), + Ok("FALSE".to_string()) + ); + model.undo().unwrap(); +} diff --git a/base/src/user_model/common.rs b/base/src/user_model/common.rs index 727da3a..b6520f6 100644 --- a/base/src/user_model/common.rs +++ b/base/src/user_model/common.rs @@ -627,6 +627,7 @@ impl UserModel { } } self.push_diff_list(diff_list); + self.evaluate_if_not_paused(); Ok(()) } @@ -656,6 +657,7 @@ impl UserModel { } } self.push_diff_list(diff_list); + self.evaluate_if_not_paused(); Ok(()) }