@Test
public void throwsFeignExceptionIncludingBody() throws Throwable {

  server.enqueue(new MockResponse().setBody("success!"));
  TestInterfaceAsync api = AsyncFeign.asyncBuilder().decoder((response, type) -> {
    throw new IOException("timeout");
  }).target(TestInterfaceAsync.class, "http://localhost:" + server.getPort());
  CompletableFuture<?> cf = api.body("Request body");
  server.takeRequest();
  try {
    unwrap(cf);
  } catch (FeignException e) {
    assertThat(e.getMessage())
        .isEqualTo("timeout reading POST http://localhost:" + server.getPort() + "/");
    assertThat(e.contentUTF8()).isEqualTo("Request body");
    return;
  }
  fail();
}