From bef9ef1a2a15ffaeda689a04ebff95eedfe20f74 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Tue, 11 Nov 2025 19:34:00 -0700 Subject: [PATCH] ooo tests pass --- pttodoest/src/main.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/pttodoest/src/main.rs b/pttodoest/src/main.rs index 1aa926a..3897fdd 100755 --- a/pttodoest/src/main.rs +++ b/pttodoest/src/main.rs @@ -39,12 +39,6 @@ fn main() { if flags.edit { edit::files(&files); - for file in files.files.iter() { - file.persist_stage() - .expect("failed to persist edited stage to log file"); - file.stage_persisted() - .expect("failed to stage edits from log files"); - } } } @@ -576,7 +570,12 @@ mod tests { pub fn file_contains(d: &tempdir::TempDir, fname: &str, content: &str) { let p = d.path().join(&fname); let file_content = file_content(&p.to_str().unwrap().to_string()); - assert!(file_content.contains(content)); + assert!( + file_content.contains(content), + "expected {:?} but got {:?}", + content, + file_content + ); } pub fn file_content(p: &String) -> String { @@ -616,6 +615,7 @@ mod edit { let before = file.stage()?; let after = new_files.files[i].stage()?; file.persist_delta(before, after)?; + file.stage_persisted()?; } Ok(()) @@ -650,16 +650,25 @@ mod edit { #[test] fn test_persist_edits_with_files() { + let hostname = gethostname::gethostname().into_string().unwrap(); + let log_file = format!(".file.{}", hostname); + let log_file = log_file.as_str(); tests::with_dir(|d1| { tests::write_file(&d1, "file", "- foo"); let p = d1.path().join("file").display().to_string(); let files = Files::new(&vec![p]); + files.files[0].persist_stage().expect("failed to init log"); + tests::file_contains(&d1, log_file, r#""foo""#); tests::with_dir(|d2| { build_dir(&d2, &files).expect("failed to build dir"); tests::file_contains(&d2, "file", "- foo"); tests::write_file(&d2, "file", "- foobar\n- bar"); persist_edits(&d2, &files).expect("failed to persist edits"); + tests::file_contains(&d1, "file", "- foobar\n- bar"); + tests::file_contains(&d1, log_file, r#""foo""#); + tests::file_contains(&d1, log_file, r#""foobar""#); + tests::file_contains(&d1, log_file, r#""bar""#); }); }); }