@@ -407,14 +407,40 @@ func Test_Response_Body(t *testing.T) {
407
407
require .Equal (t , expectedGetResponse , buf .String ())
408
408
409
409
buf .Reset () // Reset buffer to test POST
410
-
411
410
_ , err = app .Test (httptest .NewRequest (fiber .MethodPost , "/test" , nil ))
412
- require .NoError (t , err )
413
411
414
412
expectedPostResponse := "Post in test"
413
+ require .NoError (t , err )
415
414
require .Equal (t , expectedPostResponse , buf .String ())
416
415
}
417
416
417
+ // go test -run Test_Request_Body
418
+ func Test_Request_Body (t * testing.T ) {
419
+ t .Parallel ()
420
+ buf := bytebufferpool .Get ()
421
+ defer bytebufferpool .Put (buf )
422
+ app := fiber .New ()
423
+
424
+ app .Use (New (Config {
425
+ Format : "${bytesReceived} ${bytesSent} ${status}" ,
426
+ Output : buf ,
427
+ }))
428
+
429
+ app .Post ("/" , func (c fiber.Ctx ) error {
430
+ c .Response ().Header .SetContentLength (5 )
431
+ return c .SendString ("World" )
432
+ })
433
+
434
+ // Create a POST request with a body
435
+ body := []byte ("Hello" )
436
+ req := httptest .NewRequest (fiber .MethodPost , "/" , bytes .NewReader (body ))
437
+ req .Header .Set ("Content-Type" , "application/octet-stream" )
438
+
439
+ _ , err := app .Test (req )
440
+ require .NoError (t , err )
441
+ require .Equal (t , "5 5 200" , buf .String ())
442
+ }
443
+
418
444
// go test -run Test_Logger_AppendUint
419
445
func Test_Logger_AppendUint (t * testing.T ) {
420
446
t .Parallel ()
@@ -432,10 +458,21 @@ func Test_Logger_AppendUint(t *testing.T) {
432
458
return c .SendString ("hello" )
433
459
})
434
460
461
+ app .Get ("/content" , func (c fiber.Ctx ) error {
462
+ c .Response ().Header .SetContentLength (5 )
463
+ return c .SendString ("hello" )
464
+ })
465
+
435
466
resp , err := app .Test (httptest .NewRequest (fiber .MethodGet , "/" , nil ))
436
467
require .NoError (t , err )
437
468
require .Equal (t , fiber .StatusOK , resp .StatusCode )
438
- require .Equal (t , "0 5 200" , buf .String ())
469
+ require .Equal (t , "-2 0 200" , buf .String ())
470
+
471
+ buf .Reset ()
472
+ resp , err = app .Test (httptest .NewRequest (fiber .MethodGet , "/content" , nil ))
473
+ require .NoError (t , err )
474
+ require .Equal (t , fiber .StatusOK , resp .StatusCode )
475
+ require .Equal (t , "-2 5 200" , buf .String ())
439
476
}
440
477
441
478
// go test -run Test_Logger_Data_Race -race
@@ -618,7 +655,9 @@ func Test_Logger_ByteSent_Streaming(t *testing.T) {
618
655
resp , err := app .Test (httptest .NewRequest (fiber .MethodGet , "/" , nil ))
619
656
require .NoError (t , err )
620
657
require .Equal (t , fiber .StatusOK , resp .StatusCode )
621
- require .Equal (t , "0 0 200" , buf .String ())
658
+
659
+ // -2 means identity, -1 means chunked, 200 status
660
+ require .Equal (t , "-2 -1 200" , buf .String ())
622
661
}
623
662
624
663
type fakeOutput int
0 commit comments