From 895244ed116f6ed03d5b80abc1dffd9c82a39a30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Hatcher?= Date: Sun, 19 Oct 2025 12:21:17 +0200 Subject: [PATCH] FIX: Evaluate after deleting content in the user API --- base/src/test/user_model/test_clear_cells.rs | 64 ++++++++++++++++++++ base/src/user_model/common.rs | 2 + 2 files changed, 66 insertions(+) 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(()) }