From 12d89c551c9876cd24192e293dbb8f197e2b3199 Mon Sep 17 00:00:00 2001 From: srt8hellcat2-ui Date: Fri, 23 Oct 2026 13:31:10 -0400 Subject: [PATCH] Test that a batch deleting pages also saves in full --- crates/engine/src/tests.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crates/engine/src/tests.rs b/crates/engine/src/tests.rs index e94cdc1da9..3ad72285f0 100644 --- a/crates/engine/src/tests.rs +++ b/crates/engine/src/tests.rs @@ -538,6 +538,20 @@ fn saving_after_deleting_pages_from_a_signed_file_stays_incremental() { assert!(s.get(id).unwrap().is_signed()); } +#[test] +fn saving_after_a_batch_that_deletes_pages_rewrites_the_file() { + let (mut s, id) = session_with(6); + let original = s.save_bytes(id).unwrap(); + let batch = Edit::Batch { + label: "Delete and rotate".into(), + edits: vec![Edit::DeletePages { pages: vec![1, 2, 3, 4] }, Edit::RotatePages { pages: vec![0], degrees: 90 }], + }; + s.apply(id, batch).unwrap(); + let saved = s.save_bytes(id).unwrap(); + assert!(!saved.starts_with(original.as_slice()), "a full rewrite, not an update appended to the old file"); + assert!(!contains(&saved, b"Page 3"), "a deleted page's text is not left in an earlier revision"); +} + #[test] fn saving_without_deleting_pages_stays_incremental() { let (mut s, id) = session_with(3);