Skip to content

Commit e29dc51

Browse files
committed
fix: serialize AlbTargetGroupRequest::query_string_parameters value to string
fix awslabs#954
1 parent f69280e commit e29dc51

File tree

1 file changed

+15
-0
lines changed
  • lambda-events/src/event/alb

1 file changed

+15
-0
lines changed

lambda-events/src/event/alb/mod.rs

+15
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ pub struct AlbTargetGroupRequest {
1717
#[serde(default)]
1818
pub path: Option<String>,
1919
#[serde(default)]
20+
#[serde(serialize_with = "query_map::serde::aws_api_gateway_v1::serialize_query_string_parameters")]
2021
pub query_string_parameters: QueryMap,
2122
#[serde(default)]
2223
pub multi_value_query_string_parameters: QueryMap,
@@ -70,6 +71,7 @@ pub struct AlbTargetGroupResponse {
7071
#[cfg(test)]
7172
mod test {
7273
use super::*;
74+
use serde_json::Value;
7375

7476
#[test]
7577
#[cfg(feature = "alb")]
@@ -91,6 +93,19 @@ mod test {
9193
assert_eq!(parsed, reparsed);
9294
}
9395

96+
#[test]
97+
#[cfg(feature = "alb")]
98+
fn ensure_alb_lambda_target_request_query_string_parameter_value_is_string() {
99+
let data = include_bytes!("../../fixtures/example-alb-lambda-target-request-headers-only.json");
100+
let parsed: AlbTargetGroupRequest = serde_json::from_slice(data).unwrap();
101+
let output: String = serde_json::to_string(&parsed).unwrap();
102+
let reparsed: Value = serde_json::from_slice(output.as_bytes()).unwrap();
103+
assert_eq!(
104+
reparsed["queryStringParameters"]["key"],
105+
Value::String("hello".to_string())
106+
);
107+
}
108+
94109
#[test]
95110
#[cfg(feature = "alb")]
96111
fn example_alb_lambda_target_response() {

0 commit comments

Comments
 (0)