@Test
    void failingResponseContentSanitizer() {
        final BlockingWebClient client =
                WebClient.builder(server.httpUri())
                         .decorator(ContentPreviewingClient.builder(ContentPreviewerFactory.text(100))
                                                           .requestPreviewSanitizer(FAILING_CONTENT_SANITIZER)
                                                           .newDecorator())
                         .build()
                         .blocking();
        final RequestHeaders headers = RequestHeaders.of(HttpMethod.POST, "/",
                                                         HttpHeaderNames.CONTENT_TYPE, "text/plain");

        final ClientRequestContext ctx;
        try (ClientRequestContextCaptor captor = Clients.newContextCaptor()) {
            assertThat(client.execute(headers, "Armeria").contentUtf8())
                    .isEqualTo("Hello Armeria!");
            ctx = captor.get();
        }

        final RequestLog requestLog = ctx.log().whenComplete().join();
        assertThat(requestLog.requestContentPreview()).isEqualTo("Armeria");
        assertThat(requestLog.responseContentPreview()).isEqualTo("Hello Armeria!");
    }
Unlike {@link #decodedContentPreview()}, the content preview of this test is encoded data because
the previewing decorator is inserted before {@link DecodingClient}.
core/src/test/java/com/linecorp/armeria/client/logging/ContentPreviewingClientTest.java