use crate::common::samples;
use crate::common::{assert_valid_pdf, pdf_page_count, save_test_output, test_output_dir};
use liepress::markdown_to_pdf;
#[test]
fn test_pdf_generation_basic() {
let output_dir = test_output_dir("pdf_basic");
let pdf_data = markdown_to_pdf(samples::BASIC).expect("PDF generation should succeed");
let _doc = assert_valid_pdf(&pdf_data);
let pages = pdf_page_count(&pdf_data);
assert_eq!(pages, 1, "Basic doc should be 1 page");
let output_path = output_dir.join("test_basic.pdf");
save_test_output(&output_path, &pdf_data);
}
#[test]
fn test_pdf_with_various_elements() {
let output_dir = test_output_dir("pdf_various");
let pdf_data = markdown_to_pdf(samples::FULL_FEATURED).expect("PDF generation should succeed");
let doc = assert_valid_pdf(&pdf_data);
let links = crate::common::extract_links(&doc);
assert!(!links.is_empty(), "Should have link annotations");
let has_example = links.iter().any(|(url, _)| url == "https://example.com");
assert!(has_example, "Should contain https://example.com link");
let output_path = output_dir.join("test_various.pdf");
save_test_output(&output_path, &pdf_data);
}
#[test]
fn test_pdf_code_block() {
let output_dir = test_output_dir("pdf_code");
let pdf_data = markdown_to_pdf(samples::CODE_BLOCK).expect("PDF generation should succeed");
let _doc = assert_valid_pdf(&pdf_data);
let output_path = output_dir.join("test_code.pdf");
save_test_output(&output_path, &pdf_data);
}
#[test]
fn test_pdf_list() {
let output_dir = test_output_dir("pdf_list");
let pdf_data = markdown_to_pdf(samples::NESTED_LIST).expect("PDF generation should succeed");
let _doc = assert_valid_pdf(&pdf_data);
let output_path = output_dir.join("test_list.pdf");
save_test_output(&output_path, &pdf_data);
}
#[test]
fn test_pdf_ordered_list() {
let output_dir = test_output_dir("pdf_ordered");
let pdf_data = markdown_to_pdf(samples::ORDERED_LIST).expect("PDF generation should succeed");
let _doc = assert_valid_pdf(&pdf_data);
let output_path = output_dir.join("test_ordered.pdf");
save_test_output(&output_path, &pdf_data);
}