cbz2pdf/tests/job_and_format_tests.rs
Marc Plano-Lesay b35ccbe271
All checks were successful
Build and test / Clippy (pull_request) Successful in 44s
Build and test / Tests (pull_request) Successful in 48s
Checking yaml / Run yamllint (pull_request) Successful in 5s
Checking Renovate configuration / validate (pull_request) Successful in 1m4s
Build and test / Build AMD64 (pull_request) Successful in 49s
Build and test / Generate Documentation (pull_request) Successful in 59s
feat: implement cbz writing and pdf reading
2025-10-13 16:57:14 +11:00

40 lines
1.1 KiB
Rust

use std::path::PathBuf;
use cbz2pdf::formats::FormatId;
use cbz2pdf::job::Job;
#[test]
fn detect_from_path_recognizes_extensions() {
let cbz = PathBuf::from("/tmp/book.cbz");
let pdf = PathBuf::from("/tmp/book.pdf");
assert_eq!(FormatId::detect_from_path(&cbz), Some(FormatId::Cbz));
assert_eq!(FormatId::detect_from_path(&pdf), Some(FormatId::Pdf));
assert_eq!(
FormatId::detect_from_path(&PathBuf::from("/tmp/book.txt")),
None
);
}
#[test]
fn job_new_sets_output_extension() {
let input = PathBuf::from("/tmp/book.cbz");
let outdir = PathBuf::from("/tmp");
let job = Job::new(input.clone(), outdir.clone(), FormatId::Cbz, FormatId::Pdf);
assert!(job.output_path.ends_with("book.pdf"));
let job2 = Job::new(
PathBuf::from("/tmp/book.pdf"),
outdir,
FormatId::Pdf,
FormatId::Cbz,
);
assert!(job2.output_path.ends_with("book.cbz"));
}
#[test]
fn format_capabilities_consistent() {
assert!(FormatId::Cbz.can_read());
assert!(FormatId::Cbz.can_write());
assert!(FormatId::Pdf.can_write());
assert!(FormatId::Pdf.can_read());
}