From fdf41b0089c4a4702b7ab84b7a902f506c4aa973 Mon Sep 17 00:00:00 2001 From: gengteng Date: Fri, 20 Oct 2023 20:42:45 +0800 Subject: [PATCH] add tests for validify extractors --- src/validify/test.rs | 79 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 70 insertions(+), 9 deletions(-) diff --git a/src/validify/test.rs b/src/validify/test.rs index 32e5229..c5230bf 100644 --- a/src/validify/test.rs +++ b/src/validify/test.rs @@ -107,10 +107,19 @@ async fn test_main() -> anyhow::Result<()> { ); #[cfg(feature = "typed_header")] - let router = router.route( - typed_header::route::TYPED_HEADER, - post(typed_header::extract_typed_header), - ); + let router = router + .route( + typed_header::route::TYPED_HEADER, + post(typed_header::extract_typed_header), + ) + .route( + typed_header::route::TYPED_HEADER_MODIFIED, + post(typed_header::extract_typed_header_modified), + ) + .route( + typed_header::route::TYPED_HEADER_VALIDIFIED_BY_REF, + post(typed_header::extract_typed_header_validified_by_ref), + ); #[cfg(feature = "typed_multipart")] let router = router @@ -334,26 +343,64 @@ async fn test_main() -> anyhow::Result<()> { .execute_validified::>(Method::GET, route::QUERY_VALIDIFIED) .await?; - // Validified + // Validated test_executor .execute::>(Method::POST, route::FORM) .await?; - + // Modified + test_executor + .execute_modified::>(Method::POST, route::FORM_MODIFIED) + .await?; + // ValidifiedByRef + test_executor + .execute::>(Method::POST, route::FORM_VALIDIFIED_BY_REF) + .await?; // Validified + test_executor + .execute_validified::>(Method::POST, route::FORM_VALIDIFIED) + .await?; + + // Validated test_executor .execute::>(Method::POST, route::JSON) .await?; + // Modified + test_executor + .execute_modified::>(Method::POST, route::JSON_MODIFIED) + .await?; + // ValidifiedByRef + test_executor + .execute::>(Method::POST, route::JSON_VALIDIFIED_BY_REF) + .await?; + // Validified + test_executor + .execute_validified::>(Method::POST, route::JSON_VALIDIFIED) + .await?; #[cfg(feature = "typed_header")] { use axum::TypedHeader; - // Validified + // Validated test_executor .execute::>( Method::POST, typed_header::route::TYPED_HEADER, ) .await?; + // Modified + test_executor + .execute_modified::>( + Method::POST, + typed_header::route::TYPED_HEADER_MODIFIED, + ) + .await?; + // ValidifiedByRef + test_executor + .execute::>( + Method::POST, + typed_header::route::TYPED_HEADER_VALIDIFIED_BY_REF, + ) + .await?; } #[cfg(feature = "typed_multipart")] @@ -860,10 +907,12 @@ mod typed_header { pub(crate) mod route { pub const TYPED_HEADER: &str = "/typed_header"; + pub const TYPED_HEADER_MODIFIED: &str = "/typed_header_modified"; + pub const TYPED_HEADER_VALIDIFIED_BY_REF: &str = "/typed_header_validified_be_ref"; } - use super::{check_validated, ParametersValidify}; - use crate::Validated; + use super::{check_modified, check_validated, check_validified, ParametersValidify}; + use crate::{Modified, Validated, ValidifiedByRef}; use axum::headers::{Error, Header, HeaderName, HeaderValue}; use axum::http::StatusCode; use axum::TypedHeader; @@ -876,6 +925,18 @@ mod typed_header { check_validated(¶meters) } + pub(super) async fn extract_typed_header_modified( + Modified(TypedHeader(parameters)): Modified>, + ) -> StatusCode { + check_modified(¶meters) + } + + pub(super) async fn extract_typed_header_validified_by_ref( + ValidifiedByRef(TypedHeader(parameters)): ValidifiedByRef>, + ) -> StatusCode { + check_validified(¶meters) + } + impl Header for ParametersValidify { fn name() -> &'static HeaderName { &AXUM_VALID_PARAMETERS