use hreq::prelude::*; use hreq::Error; mod common; #[test] fn code_302() -> Result<(), Error> { common::setup_logger(); let mut server = Server::new(); server .at("/path1") .all(|_: http::Request| async move { http::Response::builder() .status(302) .header("Location", "/path2") .body(()) .unwrap() }); server .at("/path2") .all(|_: http::Request| async move { http::Response::builder().body("OK").unwrap() }); let (shut, addr) = server.listen(0).block()?; let uri = format!("http://127.0.0.1:{}/path1", addr.port()); let req = http::Request::get(&uri).body(())?; let res = req.send().block()?; assert_eq!(res.status_code(), 200); let body = res.into_body().read_to_string().block()?; assert_eq!(body, "OK"); shut.shutdown().block(); Ok(()) }