use pdfluent::prelude::*;
fn enterprise_doc(path: &str) -> PdfDocument {
PdfDocument::open_with(
path,
pdfluent::OpenOptions::new().with_license_key("tier:enterprise"),
)
.expect("open sample")
}
#[test]
fn to_docx_has_stable_signature() {
let _: fn(&PdfDocument, &std::path::Path) -> Result<()> = |doc, p| doc.to_docx(p);
}
#[test]
fn to_images_has_stable_signature() {
let _: fn(&PdfDocument, &std::path::Path, ToImagesOptions) -> Result<ToImagesReport> =
|doc, p, o| doc.to_images(p, o);
}
#[test]
fn to_docx_native_succeeds_on_sample() {
let doc = enterprise_doc("tests/fixtures/sample.pdf");
let out = std::env::temp_dir().join("pdfluent-wasm-surface-to_docx.docx");
let _ = std::fs::remove_file(&out);
doc.to_docx(&out).expect("to_docx native");
assert!(out.exists());
let _ = std::fs::remove_file(&out);
}
#[test]
fn to_images_native_succeeds_on_sample() {
let doc = enterprise_doc("tests/fixtures/sample.pdf");
let dir = std::env::temp_dir().join("pdfluent-wasm-surface-to_images");
let _ = std::fs::remove_dir_all(&dir);
std::fs::create_dir_all(&dir).unwrap();
let pattern = dir.join("page_{page}.png");
let report = doc
.to_images(&pattern, ToImagesOptions::new().with_dpi(72))
.expect("to_images native");
assert_eq!(report.paths.len(), doc.page_count());
let _ = std::fs::remove_dir_all(&dir);
}
#[test]
fn linearize_returns_missing_dependency_on_both_targets() {
let mut doc = enterprise_doc("tests/fixtures/sample.pdf");
let err = doc.linearize().expect_err("deferred");
assert_eq!(err.code(), "E-ENV-MISSING-DEPENDENCY");
}
#[test]
fn embed_font_returns_missing_dependency_on_both_targets() {
let mut doc = enterprise_doc("tests/fixtures/sample.pdf");
let err = doc
.embed_font(b"not-a-real-font", "Unknown")
.expect_err("deferred");
assert_eq!(err.code(), "E-ENV-MISSING-DEPENDENCY");
}
#[test]
fn add_decoration_returns_missing_dependency_on_both_targets() {
let mut doc = enterprise_doc("tests/fixtures/sample.pdf");
let err = doc
.add_decoration(PageDecoration::watermark(
"DRAFT",
WatermarkOptions::centered(),
))
.expect_err("deferred");
assert_eq!(err.code(), "E-ENV-MISSING-DEPENDENCY");
}
#[test]
fn unsupported_on_wasm_code_is_stable() {
let err = Error::UnsupportedOnWasm {
operation: "example",
};
assert_eq!(err.code(), "E-ENV-UNSUPPORTED-ON-WASM");
let msg = format!("{err}");
assert!(msg.contains("example"));
assert!(msg.to_lowercase().contains("wasm"));
}