hyper icon indicating copy to clipboard operation
hyper copied to clipboard

Be able to create and modify `HttpInfo` for testing

Open Will-Low opened this issue 3 years ago • 0 comments

I've run into the case several times when unit testing where I need to return a Response whose extensions contain an HttpInfo. However, since the fields on HttpInfo are private, I am unable to create one.

I would like to see a way to create a new HttpInfo, either by making the fields public, adding setters, or by adding a constructor. Since there are already getter methods, I think it may make most sense to:

  1. Add a constructor to create a new HttpInfo.
  2. Add setters for the remote and local addresses.

Note that it is already possible to get a mutable reference to HttpInfo via:

let mut response = Response::new(Body::empty());
let http_info = response.extensions_mut().get_mut::<HttpInfo>().unwrap();

but without setters, there is nothing you can do with it.

Will-Low avatar Nov 22 '22 22:11 Will-Low