Home / Function/ Test_Response_BodyStream() — fiber Function Reference

Test_Response_BodyStream() — fiber Function Reference

Architecture documentation for the Test_Response_BodyStream() function in response_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  eddb6f19_3efc_a76d_6b68_07f65d921a26["Test_Response_BodyStream()"]
  9a680627_ad54_340e_3faa_64ead9b39aef["response_test.go"]
  eddb6f19_3efc_a76d_6b68_07f65d921a26 -->|defined in| 9a680627_ad54_340e_3faa_64ead9b39aef
  style eddb6f19_3efc_a76d_6b68_07f65d921a26 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

client/response_test.go lines 689–748

func Test_Response_BodyStream(t *testing.T) {
	t.Parallel()

	t.Run("basic streaming", func(t *testing.T) {
		t.Parallel()

		server := startTestServer(t, func(app *fiber.App) {
			app.Get("/stream", func(c fiber.Ctx) error {
				return c.SendStream(bytes.NewReader([]byte("streaming data")))
			})
		})
		defer server.stop()

		client := New().SetDial(server.dial()).SetStreamResponseBody(true)

		resp, err := client.Get("http://example.com/stream")
		require.NoError(t, err)
		defer resp.Close()
		bodyStream := resp.BodyStream()
		require.NotNil(t, bodyStream)
		data, err := io.ReadAll(bodyStream)
		require.NoError(t, err)
		require.Equal(t, "streaming data", string(data))
	})

	t.Run("large response streaming", func(t *testing.T) {
		t.Parallel()

		server := startTestServer(t, func(app *fiber.App) {
			app.Get("/large", func(c fiber.Ctx) error {
				data := make([]byte, 1024)
				for i := range data {
					data[i] = byte('A' + i%26)
				}
				return c.SendStream(bytes.NewReader(data))
			})
		})
		defer server.stop()

		client := New().SetDial(server.dial()).SetStreamResponseBody(true)
		resp, err := client.Get("http://example.com/large")
		require.NoError(t, err)
		defer resp.Close()
		bodyStream := resp.BodyStream()
		require.NotNil(t, bodyStream)
		buffer := make([]byte, 256)
		var totalRead []byte
		for {
			n, err := bodyStream.Read(buffer)
			if n > 0 {
				totalRead = append(totalRead, buffer[:n]...)
			}
			if err == io.EOF {
				break
			}
			require.NoError(t, err)
		}
		require.Len(t, totalRead, 1024)
	})
}

Domain

Subdomains

Frequently Asked Questions

What does Test_Response_BodyStream() do?
Test_Response_BodyStream() is a function in the fiber codebase, defined in client/response_test.go.
Where is Test_Response_BodyStream() defined?
Test_Response_BodyStream() is defined in client/response_test.go at line 689.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free