@@ -248,6 +248,22 @@ mod juniper_request_tests {
248248 assert_eq ! ( do_from_request( req) . await , expected) ;
249249 }
250250
251+ #[ tokio:: test]
252+ async fn from_json_post_request_with_charset ( ) {
253+ let req = Request :: post ( "/" )
254+ . header ( "content-type" , "application/json; charset=utf-8" )
255+ . body ( Body :: from ( r#"{"query": "{ add(a: 2, b: 3) }"}"# ) )
256+ . unwrap_or_else ( |e| panic ! ( "cannot build `Request`: {e}" ) ) ;
257+
258+ let expected = JuniperRequest ( GraphQLBatchRequest :: Single ( GraphQLRequest :: new (
259+ "{ add(a: 2, b: 3) }" . to_string ( ) ,
260+ None ,
261+ None ,
262+ ) ) ) ;
263+
264+ assert_eq ! ( do_from_request( req) . await , expected) ;
265+ }
266+
251267 #[ tokio:: test]
252268 async fn from_graphql_post_request ( ) {
253269 let req = Request :: post ( "/" )
@@ -264,6 +280,22 @@ mod juniper_request_tests {
264280 assert_eq ! ( do_from_request( req) . await , expected) ;
265281 }
266282
283+ #[ tokio:: test]
284+ async fn from_graphql_post_request_with_charset ( ) {
285+ let req = Request :: post ( "/" )
286+ . header ( "content-type" , "application/graphql; charset=utf-8" )
287+ . body ( Body :: from ( r#"{ add(a: 2, b: 3) }"# ) )
288+ . unwrap_or_else ( |e| panic ! ( "cannot build `Request`: {e}" ) ) ;
289+
290+ let expected = JuniperRequest ( GraphQLBatchRequest :: Single ( GraphQLRequest :: new (
291+ "{ add(a: 2, b: 3) }" . to_string ( ) ,
292+ None ,
293+ None ,
294+ ) ) ) ;
295+
296+ assert_eq ! ( do_from_request( req) . await , expected) ;
297+ }
298+
267299 /// Performs [`JuniperRequest::from_request()`].
268300 async fn do_from_request ( req : Request < Body > ) -> JuniperRequest {
269301 match JuniperRequest :: from_request ( req, & ( ) ) . await {
0 commit comments