diff --git a/CHANGES.md b/CHANGES.md index 757a15a3b..44bbc30f9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,10 +6,11 @@ ### Removed - `HttpRequest::req_data[_mut]()`; request-local data is still available through `.extensions()`. [#2585] -- `HttpRequestBuilder::del_cookie +- `HttpRequestBuilder::del_cookie`. [#2591] [#2585]: https://github.com/actix/actix-web/pull/2585 [#2586]: https://github.com/actix/actix-web/pull/2586 +[#2591]: https://github.com/actix/actix-web/pull/2591 ## 4.0.0-beta.20 - 2022-01-14 diff --git a/src/response/builder.rs b/src/response/builder.rs index 5062da1f6..c9b2e6ec6 100644 --- a/src/response/builder.rs +++ b/src/response/builder.rs @@ -282,6 +282,9 @@ impl HttpResponseBuilder { /// Set a body and build the `HttpResponse`. /// + /// Unlike [`message_body`](Self::message_body), errors are converted into error + /// responses immediately. + /// /// `HttpResponseBuilder` can not be used after this call. pub fn body(&mut self, body: B) -> HttpResponse where @@ -307,10 +310,7 @@ impl HttpResponseBuilder { .expect("cannot reuse response builder") .set_body(body); - #[allow(unused_mut)] // mut is only unused when cookies are disabled - let mut res = HttpResponse::from(res); - - Ok(res) + Ok(HttpResponse::from(res)) } /// Set a streaming body and build the `HttpResponse`. diff --git a/tests/test_server.rs b/tests/test_server.rs index 987e51a65..ade48a485 100644 --- a/tests/test_server.rs +++ b/tests/test_server.rs @@ -11,7 +11,7 @@ use std::{ }; use actix_web::{ - cookie::{Cookie, CookieBuilder}, + cookie::Cookie, http::{header, StatusCode}, middleware::{Compress, NormalizePath, TrailingSlash}, web, App, Error, HttpResponse, @@ -773,7 +773,7 @@ async fn test_server_cookies() { App::new().default_service(web::to(|| { HttpResponse::Ok() .cookie( - CookieBuilder::new("first", "first_value") + Cookie::build("first", "first_value") .http_only(true) .finish(), ) @@ -787,13 +787,13 @@ async fn test_server_cookies() { let res = req.send().await.unwrap(); assert!(res.status().is_success()); - let first_cookie = CookieBuilder::new("first", "first_value") + let first_cookie = Cookie::build("first", "first_value") .http_only(true) .finish(); - let second_cookie = Cookie::new("second", "second_value"); + let second_cookie = Cookie::new("second", "first_value"); let cookies = res.cookies().expect("To have cookies"); - assert_eq!(cookies.len(), 2); + assert_eq!(cookies.len(), 3); if cookies[0] == first_cookie { assert_eq!(cookies[1], second_cookie); } else { @@ -809,7 +809,7 @@ async fn test_server_cookies() { .get_all(http::header::SET_COOKIE) .map(|header| header.to_str().expect("To str").to_string()) .collect::>(); - assert_eq!(cookies.len(), 2); + assert_eq!(cookies.len(), 3); if cookies[0] == first_cookie { assert_eq!(cookies[1], second_cookie); } else {