MCPcopy
hub / github.com/gofiber/fiber / Test_Response_Save_Streaming

Function Test_Response_Save_Streaming

client/response_test.go:827–925  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

825}
826
827func Test_Response_Save_Streaming(t *testing.T) {
828 t.Parallel()
829
830 t.Run("save streaming response to file", func(t *testing.T) {
831 t.Parallel()
832
833 server := startTestServer(t, func(app *fiber.App) {
834 app.Get("/stream", func(c fiber.Ctx) error {
835 return c.SendStream(bytes.NewReader([]byte("streaming file content")))
836 })
837 })
838 defer server.stop()
839
840 client := New().SetDial(server.dial()).SetStreamResponseBody(true)
841
842 resp, err := client.Get("http://example.com/stream")
843 require.NoError(t, err)
844 defer resp.Close()
845
846 testFile := filepath.Join(t.TempDir(), "stream_test.txt")
847 err = resp.Save(testFile)
848 require.NoError(t, err)
849
850 data, err := os.ReadFile(testFile)
851 require.NoError(t, err)
852 require.Equal(t, "streaming file content", string(data))
853 })
854
855 t.Run("save streaming response to io.Writer", func(t *testing.T) {
856 t.Parallel()
857
858 server := startTestServer(t, func(app *fiber.App) {
859 app.Get("/stream", func(c fiber.Ctx) error {
860 return c.SendStream(bytes.NewReader([]byte("streaming writer content")))
861 })
862 })
863 defer server.stop()
864
865 client := New().SetDial(server.dial()).SetStreamResponseBody(true)
866
867 resp, err := client.Get("http://example.com/stream")
868 require.NoError(t, err)
869 defer resp.Close()
870
871 var buf bytes.Buffer
872 err = resp.Save(&buf)
873 require.NoError(t, err)
874 require.Equal(t, "streaming writer content", buf.String())
875 })
876
877 t.Run("save non-streaming response to file using BodyStream", func(t *testing.T) {
878 t.Parallel()
879
880 server := startTestServer(t, func(app *fiber.App) {
881 app.Get("/regular", func(c fiber.Ctx) error {
882 return c.SendString("regular file content")
883 })
884 })

Callers

nothing calls this directly

Calls 13

StringMethod · 0.95
startTestServerFunction · 0.85
stopMethod · 0.80
dialMethod · 0.80
NewFunction · 0.70
GetMethod · 0.65
SendStreamMethod · 0.65
SetStreamResponseBodyMethod · 0.65
SetDialMethod · 0.65
CloseMethod · 0.65
SendStringMethod · 0.65
StringMethod · 0.65

Tested by

no test coverage detected