//! Shared test utilities for HTTP handler tests. //! //! Import with `use crate::http::test_helpers::{make_api, test_ctx};` use crate::http::context::AppContext; use std::path::Path; use std::sync::Arc; use tempfile::TempDir; /// Build an [`AppContext`] rooted at `dir` for use in tests. pub(crate) fn test_ctx(dir: &Path) -> AppContext { AppContext::new_test(dir.to_path_buf()) } /// Build an API struct rooted in `dir` for use in tests. /// /// Requires the API type to implement `From>`. Add a /// `#[cfg(test)]` impl block to each API struct to opt in. pub(crate) fn make_api>>(dir: &TempDir) -> T { Arc::new(test_ctx(dir.path())).into() }