add tests for validify extractors
This commit is contained in:
@@ -107,10 +107,19 @@ async fn test_main() -> anyhow::Result<()> {
|
|||||||
);
|
);
|
||||||
|
|
||||||
#[cfg(feature = "typed_header")]
|
#[cfg(feature = "typed_header")]
|
||||||
let router = router.route(
|
let router = router
|
||||||
typed_header::route::TYPED_HEADER,
|
.route(
|
||||||
post(typed_header::extract_typed_header),
|
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")]
|
#[cfg(feature = "typed_multipart")]
|
||||||
let router = router
|
let router = router
|
||||||
@@ -334,26 +343,64 @@ async fn test_main() -> anyhow::Result<()> {
|
|||||||
.execute_validified::<Query<ParametersValidify>>(Method::GET, route::QUERY_VALIDIFIED)
|
.execute_validified::<Query<ParametersValidify>>(Method::GET, route::QUERY_VALIDIFIED)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
// Validified
|
// Validated
|
||||||
test_executor
|
test_executor
|
||||||
.execute::<Form<ParametersValidify>>(Method::POST, route::FORM)
|
.execute::<Form<ParametersValidify>>(Method::POST, route::FORM)
|
||||||
.await?;
|
.await?;
|
||||||
|
// Modified
|
||||||
|
test_executor
|
||||||
|
.execute_modified::<Form<ParametersValidify>>(Method::POST, route::FORM_MODIFIED)
|
||||||
|
.await?;
|
||||||
|
// ValidifiedByRef
|
||||||
|
test_executor
|
||||||
|
.execute::<Form<ParametersValidify>>(Method::POST, route::FORM_VALIDIFIED_BY_REF)
|
||||||
|
.await?;
|
||||||
// Validified
|
// Validified
|
||||||
|
test_executor
|
||||||
|
.execute_validified::<Form<ParametersValidify>>(Method::POST, route::FORM_VALIDIFIED)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
// Validated
|
||||||
test_executor
|
test_executor
|
||||||
.execute::<Json<ParametersValidify>>(Method::POST, route::JSON)
|
.execute::<Json<ParametersValidify>>(Method::POST, route::JSON)
|
||||||
.await?;
|
.await?;
|
||||||
|
// Modified
|
||||||
|
test_executor
|
||||||
|
.execute_modified::<Json<ParametersValidify>>(Method::POST, route::JSON_MODIFIED)
|
||||||
|
.await?;
|
||||||
|
// ValidifiedByRef
|
||||||
|
test_executor
|
||||||
|
.execute::<Json<ParametersValidify>>(Method::POST, route::JSON_VALIDIFIED_BY_REF)
|
||||||
|
.await?;
|
||||||
|
// Validified
|
||||||
|
test_executor
|
||||||
|
.execute_validified::<Json<ParametersValidify>>(Method::POST, route::JSON_VALIDIFIED)
|
||||||
|
.await?;
|
||||||
|
|
||||||
#[cfg(feature = "typed_header")]
|
#[cfg(feature = "typed_header")]
|
||||||
{
|
{
|
||||||
use axum::TypedHeader;
|
use axum::TypedHeader;
|
||||||
// Validified
|
// Validated
|
||||||
test_executor
|
test_executor
|
||||||
.execute::<TypedHeader<ParametersValidify>>(
|
.execute::<TypedHeader<ParametersValidify>>(
|
||||||
Method::POST,
|
Method::POST,
|
||||||
typed_header::route::TYPED_HEADER,
|
typed_header::route::TYPED_HEADER,
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
// Modified
|
||||||
|
test_executor
|
||||||
|
.execute_modified::<TypedHeader<ParametersValidify>>(
|
||||||
|
Method::POST,
|
||||||
|
typed_header::route::TYPED_HEADER_MODIFIED,
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
// ValidifiedByRef
|
||||||
|
test_executor
|
||||||
|
.execute::<TypedHeader<ParametersValidify>>(
|
||||||
|
Method::POST,
|
||||||
|
typed_header::route::TYPED_HEADER_VALIDIFIED_BY_REF,
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "typed_multipart")]
|
#[cfg(feature = "typed_multipart")]
|
||||||
@@ -860,10 +907,12 @@ mod typed_header {
|
|||||||
|
|
||||||
pub(crate) mod route {
|
pub(crate) mod route {
|
||||||
pub const TYPED_HEADER: &str = "/typed_header";
|
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 super::{check_modified, check_validated, check_validified, ParametersValidify};
|
||||||
use crate::Validated;
|
use crate::{Modified, Validated, ValidifiedByRef};
|
||||||
use axum::headers::{Error, Header, HeaderName, HeaderValue};
|
use axum::headers::{Error, Header, HeaderName, HeaderValue};
|
||||||
use axum::http::StatusCode;
|
use axum::http::StatusCode;
|
||||||
use axum::TypedHeader;
|
use axum::TypedHeader;
|
||||||
@@ -876,6 +925,18 @@ mod typed_header {
|
|||||||
check_validated(¶meters)
|
check_validated(¶meters)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(super) async fn extract_typed_header_modified(
|
||||||
|
Modified(TypedHeader(parameters)): Modified<TypedHeader<ParametersValidify>>,
|
||||||
|
) -> StatusCode {
|
||||||
|
check_modified(¶meters)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) async fn extract_typed_header_validified_by_ref(
|
||||||
|
ValidifiedByRef(TypedHeader(parameters)): ValidifiedByRef<TypedHeader<ParametersValidify>>,
|
||||||
|
) -> StatusCode {
|
||||||
|
check_validified(¶meters)
|
||||||
|
}
|
||||||
|
|
||||||
impl Header for ParametersValidify {
|
impl Header for ParametersValidify {
|
||||||
fn name() -> &'static HeaderName {
|
fn name() -> &'static HeaderName {
|
||||||
&AXUM_VALID_PARAMETERS
|
&AXUM_VALID_PARAMETERS
|
||||||
|
|||||||
Reference in New Issue
Block a user