mirror of
https://github.com/actix/actix-extras.git
synced 2024-11-24 07:53:00 +01:00
add async handler test with blocking call
This commit is contained in:
parent
f4b4875cb1
commit
d2c1791067
@ -4,7 +4,6 @@
|
||||
|
||||
* Add helper function for executing futures `test::block_fn()`
|
||||
|
||||
|
||||
### Changed
|
||||
|
||||
* Allow to construct `Data` instances to avoid double `Arc` for `Send + Sync` types.
|
||||
|
20
src/test.rs
20
src/test.rs
@ -640,4 +640,24 @@ mod tests {
|
||||
let result: Person = read_response_json(&mut app, req);
|
||||
assert_eq!(&result.id, "12345");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_async_with_block() {
|
||||
fn async_with_block() -> impl Future<Item = HttpResponse, Error = Error> {
|
||||
web::block(move || Some(4).ok_or("wrong")).then(|res| match res {
|
||||
Ok(value) => HttpResponse::Ok()
|
||||
.content_type("text/plain")
|
||||
.body(format!("Async with block value: {}", value)),
|
||||
Err(_) => panic!("Unexpected"),
|
||||
})
|
||||
}
|
||||
|
||||
let mut app = init_service(
|
||||
App::new().service(web::resource("/index.html").to_async(async_with_block)),
|
||||
);
|
||||
|
||||
let req = TestRequest::post().uri("/index.html").to_request();
|
||||
let res = block_on(app.call(req)).unwrap();
|
||||
assert!(res.status().is_success());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user