mod compare;
pub mod fixture;
mod report;
mod runner;
use std::path::Path;
pub use compare::{CompareResult, compare_analysis};
pub use fixture::{
Fixture, FixtureContext, FixtureEntry, FixtureInput, FixtureMeta, Golden, Manifest,
discover_fixtures,
};
pub use report::generate_html_report;
pub use runner::{RunResult, TestRunner, TestSummary};
use crate::error::Result;
pub const FIXTURES_DIR: &str = "tests/fixtures";
pub fn fixtures_dir() -> std::path::PathBuf {
if let Ok(manifest_dir) = std::env::var("CARGO_MANIFEST_DIR") {
return Path::new(&manifest_dir).join(FIXTURES_DIR);
}
Path::new(FIXTURES_DIR).to_path_buf()
}
pub fn list_fixtures() -> Result<Vec<String>> {
let manifest = Manifest::load(&fixtures_dir())?;
Ok(manifest.fixtures.into_keys().collect())
}