From bb811ce33fdbc6830c7dde61e71094d3ae42dc29 Mon Sep 17 00:00:00 2001 From: Markus Bergkvist Date: Fri, 31 Dec 2021 15:29:24 +0100 Subject: [PATCH] fix: add support for null/invalid type for multi-value-headers --- lambda-http/src/request.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lambda-http/src/request.rs b/lambda-http/src/request.rs index 88740dd1..de61f726 100644 --- a/lambda-http/src/request.rs +++ b/lambda-http/src/request.rs @@ -317,7 +317,7 @@ where } } - deserializer.deserialize_map(HeaderVisitor) + Ok(deserializer.deserialize_map(HeaderVisitor).unwrap_or_default()) } /// Deserialize a map of Cow<'_, str> => Cow<'_, str> into an http::HeaderMap @@ -868,4 +868,20 @@ mod tests { } ) } + + #[test] + fn deserialize_null_multi_value_headers() { + #[derive(Debug, PartialEq, Deserialize)] + struct Test { + #[serde(deserialize_with = "deserialize_multi_value_headers")] + multi_value_headers: http::HeaderMap, + } + + assert_eq!( + serde_json::from_str::(r#"{"multi_value_headers":null}"#).expect("failed to deserialize"), + Test { + multi_value_headers: http::HeaderMap::new() + } + ) + } }