diff --git a/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs b/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs index 08abaf2..17f338b 100644 --- a/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs +++ b/DebugProbe.AspNetCore.Tests/Middleware/ResponseBodyCaptureTests.cs @@ -41,6 +41,7 @@ public async Task Handles_large_response_within_limit() await app.Client.GetAsync("/large"); Assert.Equal(body, app.SingleEntry.ResponseBody); + Assert.Equal(body.Length, app.SingleEntry.ResponseSize); } [Fact] @@ -54,6 +55,7 @@ public async Task Handles_binary_response_safely() await app.Client.GetAsync("/binary"); Assert.Equal("[Body not captured: non-text content]", app.SingleEntry.ResponseBody); + Assert.Equal(4, app.SingleEntry.ResponseSize); } [Fact] @@ -69,5 +71,6 @@ public async Task Validates_bounded_response_capture_behavior() var entry = app.SingleEntry; Assert.Equal(body, await response.Content.ReadAsStringAsync()); Assert.Equal("[Body too large]", entry.ResponseBody); + Assert.Equal(body.Length, entry.ResponseSize); } } diff --git a/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs b/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs index c4c80d4..f405cee 100644 --- a/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs +++ b/DebugProbe.AspNetCore/Middleware/DebugProbeMiddleware.cs @@ -125,7 +125,7 @@ public async Task Invoke(HttpContext context, DebugEntryStore store) entry.RequestSize = context.Request.ContentLength ?? Encoding.UTF8.GetByteCount(requestBody); - entry.ResponseSize = Encoding.UTF8.GetByteCount(responseBody); + entry.ResponseSize = responseCapture.TotalBytesWritten; entry.RequestHeaders = context.Request.Headers.ToDictionary(