storkit: merge 444_refactor_extract_shared_test_helpers_test_ctx_write_story_file_make_api
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
//! 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<Arc<AppContext>>`. Add a
|
||||
/// `#[cfg(test)]` impl block to each API struct to opt in.
|
||||
pub(crate) fn make_api<T: From<Arc<AppContext>>>(dir: &TempDir) -> T {
|
||||
Arc::new(test_ctx(dir.path())).into()
|
||||
}
|
||||
Reference in New Issue
Block a user