From 75f9c48c3958c325520e6b6392ee6249cd5c3efb Mon Sep 17 00:00:00 2001 From: Adrian Date: Wed, 28 Oct 2026 14:10:44 -0400 Subject: [PATCH] M3: the window-title save test removes its temp folder even when an assert fails (#3640) --- crates/ui-egui/tests/it/viewer.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/ui-egui/tests/it/viewer.rs b/crates/ui-egui/tests/it/viewer.rs index 0db837f901..e151f4cfca 100644 --- a/crates/ui-egui/tests/it/viewer.rs +++ b/crates/ui-egui/tests/it/viewer.rs @@ -992,13 +992,19 @@ fn the_window_title_marks_unsaved_changes_until_saved() { } h.run_steps(2); assert_eq!(h.state().window_title, "b.pdf • — PdfCraft", "unsaved changes (#3640)"); + // Removed on drop, so a failing assert below doesn't leave it behind. + struct Dir(std::path::PathBuf); + impl Drop for Dir { + fn drop(&mut self) { + let _ = std::fs::remove_dir_all(&self.0); + } + } + let dir = Dir(std::env::temp_dir().join(format!("pdfcraft-title-dirty-{}", std::process::id()))); + std::fs::create_dir_all(&dir.0).unwrap(); // Saved under its own name, so the title changes only by the mark. - let dir = std::env::temp_dir().join(format!("pdfcraft-title-dirty-{}", std::process::id())); - std::fs::create_dir_all(&dir).unwrap(); - h.state_mut().save_override = Some(dir.join("b.pdf").to_string_lossy().into_owned()); + h.state_mut().save_override = Some(dir.0.join("b.pdf").to_string_lossy().into_owned()); assert!(h.state_mut().execute("file.save")); h.run_steps(2); - let _ = std::fs::remove_dir_all(&dir); let s = h.state(); assert!(!s.session.get(s.views[s.active.unwrap()].id).unwrap().dirty); assert_eq!(s.window_title, "b.pdf — PdfCraft", "saved");