use std::fs::File; use std::io::Write; use cbz2pdf::formats::cbr::CbrReader; use cbz2pdf::formats::FormatReader; // We cannot reliably create a RAR archive in tests (tools cannot create .rar), // Instead, verify that the reader fails gracefully (returns an error) when given an invalid .cbr // file. #[test] fn cbr_reader_errors_on_invalid_archive() { let temp_dir = tempfile::tempdir().expect("create temp dir"); let cbr_path = temp_dir.path().join("invalid.cbr"); // Write some junk that is definitely not a RAR archive let mut f = File::create(&cbr_path).expect("create cbr"); f.write_all(b"this is not a rar archive").unwrap(); let reader = CbrReader; let res = reader.read(&cbr_path); assert!(res.is_err(), "CbrReader should error on invalid archives"); }