diff options
Diffstat (limited to 'tests/test_actix.rs')
-rw-r--r-- | tests/test_actix.rs | 143 |
1 files changed, 79 insertions, 64 deletions
diff --git a/tests/test_actix.rs b/tests/test_actix.rs index 532fa7c..34969d4 100644 --- a/tests/test_actix.rs +++ b/tests/test_actix.rs @@ -44,84 +44,99 @@ struct CommonParams { #[test] fn test_default_error_handler() { - let req = TestRequest::with_uri("/test").to_srv_request(); - let (req, mut pl) = req.into_parts(); - - let e = QsQuery::<Query>::from_request(&req, &mut pl).unwrap_err(); - assert_eq!( - e.as_response_error().error_response().status(), - StatusCode::BAD_REQUEST - ); + futures::executor::block_on(async { + let req = TestRequest::with_uri("/test").to_srv_request(); + let (req, mut pl) = req.into_parts(); + + let e = QsQuery::<Query>::from_request(&req, &mut pl) + .await + .unwrap_err(); + assert_eq!( + e.as_response_error().error_response().status(), + StatusCode::BAD_REQUEST + ); + }) } #[test] fn test_custom_error_handler() { - let req = TestRequest::with_uri("/test") - .data(QsQueryConfig::default().error_handler(|e, _| { - let resp = HttpResponse::UnprocessableEntity().finish(); - InternalError::from_response(e, resp).into() - })) - .to_srv_request(); - - let (req, mut pl) = req.into_parts(); - let query = QsQuery::<Query>::from_request(&req, &mut pl); - - assert!(query.is_err()); - assert_eq!( - query - .unwrap_err() - .as_response_error() - .error_response() - .status(), - StatusCode::UNPROCESSABLE_ENTITY - ); + futures::executor::block_on(async { + let req = TestRequest::with_uri("/test") + .app_data(QsQueryConfig::default().error_handler(|e, _| { + let resp = HttpResponse::UnprocessableEntity().finish(); + dbg!(&resp); + InternalError::from_response(e, resp).into() + })) + .to_srv_request(); + + let (req, mut pl) = req.into_parts(); + let query = QsQuery::<Query>::from_request(&req, &mut pl).await; + + assert!(query.is_err()); + assert_eq!( + query + .unwrap_err() + .as_response_error() + .error_response() + .status(), + StatusCode::UNPROCESSABLE_ENTITY + ); + }) } #[test] fn test_composite_querystring_extractor() { - let req = TestRequest::with_uri( - "/test?foo=1&bars[]=0&bars[]=1&limit=100&offset=50&remaining=true", - ) - .to_srv_request(); - let (req, mut pl) = req.into_parts(); - - let s = QsQuery::<Query>::from_request(&req, &mut pl).unwrap(); - assert_eq!(s.foo, 1); - assert_eq!(s.bars, vec![0, 1]); - assert_eq!(s.common.limit, 100); - assert_eq!(s.common.offset, 50); - assert_eq!(s.common.remaining, true); + futures::executor::block_on(async { + let req = TestRequest::with_uri( + "/test?foo=1&bars[]=0&bars[]=1&limit=100&offset=50&remaining=true", + ) + .to_srv_request(); + let (req, mut pl) = req.into_parts(); + + let s = QsQuery::<Query>::from_request(&req, &mut pl).await.unwrap(); + assert_eq!(s.foo, 1); + assert_eq!(s.bars, vec![0, 1]); + assert_eq!(s.common.limit, 100); + assert_eq!(s.common.offset, 50); + assert_eq!(s.common.remaining, true); + }) } #[test] fn test_default_qs_config() { - let req = TestRequest::with_uri( - "/test?foo=1&bars%5B%5D=3&limit=100&offset=50&remaining=true", - ) - .to_srv_request(); - let (req, mut pl) = req.into_parts(); - - let e = QsQuery::<Query>::from_request(&req, &mut pl).unwrap_err(); - assert_eq!( - e.as_response_error().error_response().status(), - StatusCode::BAD_REQUEST - ); + futures::executor::block_on(async { + let req = TestRequest::with_uri( + "/test?foo=1&bars%5B%5D=3&limit=100&offset=50&remaining=true", + ) + .to_srv_request(); + let (req, mut pl) = req.into_parts(); + + let e = QsQuery::<Query>::from_request(&req, &mut pl) + .await + .unwrap_err(); + assert_eq!( + e.as_response_error().error_response().status(), + StatusCode::BAD_REQUEST + ); + }) } #[test] fn test_custom_qs_config() { - let req = TestRequest::with_uri( - "/test?foo=1&bars%5B%5D=3&limit=100&offset=50&remaining=true", - ) - .data(QsQueryConfig::default().qs_config(QsConfig::new(5, false))) - .to_srv_request(); - - let (req, mut pl) = req.into_parts(); - - let s = QsQuery::<Query>::from_request(&req, &mut pl).unwrap(); - assert_eq!(s.foo, 1); - assert_eq!(s.bars, vec![3]); - assert_eq!(s.common.limit, 100); - assert_eq!(s.common.offset, 50); - assert_eq!(s.common.remaining, true); + futures::executor::block_on(async { + let req = TestRequest::with_uri( + "/test?foo=1&bars%5B%5D=3&limit=100&offset=50&remaining=true", + ) + .app_data(QsQueryConfig::default().qs_config(QsConfig::new(5, false))) + .to_srv_request(); + + let (req, mut pl) = req.into_parts(); + + let s = QsQuery::<Query>::from_request(&req, &mut pl).await.unwrap(); + assert_eq!(s.foo, 1); + assert_eq!(s.bars, vec![3]); + assert_eq!(s.common.limit, 100); + assert_eq!(s.common.offset, 50); + assert_eq!(s.common.remaining, true); + }) } |