M6: Merge data files into spreadsheet (FDF, XFDF, filled PDF forms → CSV); form_merge_data tool

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Brandon Thomas
2026-10-03 04:52:59 -04:00
co-authored by Claude Opus 5.5
parent 9321864393
commit 6ff0bf8f64
17 changed files with 266 additions and 45 deletions
+14
View File
@@ -101,3 +101,17 @@ fn document_scripts_and_preferences() {
fresh.restore(&saved);
assert!(!fresh.session.javascript(), "the preference is remembered");
}
#[test]
fn merge_data_files_into_a_spreadsheet() {
let dir = std::env::temp_dir().join(format!("printcraft-merge-ui-{}", std::process::id()));
std::fs::create_dir_all(&dir).unwrap();
let out = dir.join("report.csv");
let mut app = PrintCraftApp::new();
app.save_override = Some(out.to_string_lossy().into_owned());
app.merge_data_files(vec![("form.pdf".into(), form())]);
assert_eq!(std::fs::read_to_string(&out).unwrap(), "greeting\n\n");
assert!(app.toast.clone().unwrap().0.starts_with("Merged 1 file"));
app.merge_data_files(vec![("x.fdf".into(), b"junk".to_vec())]);
assert!(app.toast.clone().unwrap().0.starts_with("x.fdf:"));
}