#[cfg(feature = "test-fixtures")]
pub mod pdf {
use include_dir::{include_dir, Dir};
pub static DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/tests/fixtures/formats/pdf");
pub const NEW_STATS: &[u8] =
include_bytes!("../tests/fixtures/formats/pdf/New_Stats.pdf");
}
#[cfg(feature = "test-fixtures")]
pub mod rmd {
use include_dir::{include_dir, Dir};
pub static DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/tests/fixtures/formats/rmd");
pub const GETTING_STARTED: &[u8] =
include_bytes!("../tests/fixtures/formats/rmd/Getting_started_with_R.Rmd");
}
#[cfg(feature = "test-fixtures")]
pub mod html {
use include_dir::{include_dir, Dir};
pub static DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/tests/fixtures/formats/html");
pub const INDEX: &[u8] =
include_bytes!("../tests/fixtures/formats/html/index.html");
}
#[cfg(feature = "test-fixtures")]
pub fn extract_fixtures(format: &str) -> anyhow::Result<(std::path::PathBuf, tempfile::TempDir)> {
let dir = tempfile::tempdir()?;
match format {
"pdf" => pdf::DIR.extract(dir.path())?,
"rmd" => rmd::DIR.extract(dir.path())?,
"html" => html::DIR.extract(dir.path())?,
other => anyhow::bail!(
"unknown fixture format: {other}. Available: pdf, rmd, html"
),
}
let path = dir.path().to_path_buf();
Ok((path, dir))
}