Home / Function/ Test_Response_Save_Streaming() — fiber Function Reference

Test_Response_Save_Streaming() — fiber Function Reference

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

Entity Profile

Dependency Diagram

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

Relationship Graph

Source Code

client/response_test.go lines 827–925

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

	t.Run("save streaming response to file", 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 file content")))
			})
		})
		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()

		testFile := filepath.Join(t.TempDir(), "stream_test.txt")
		err = resp.Save(testFile)
		require.NoError(t, err)

		data, err := os.ReadFile(testFile) //nolint:gosec // test file is created in a temp directory
		require.NoError(t, err)
		require.Equal(t, "streaming file content", string(data))
	})

	t.Run("save streaming response to io.Writer", 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 writer content")))
			})
		})
		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()

		var buf bytes.Buffer
		err = resp.Save(&buf)
		require.NoError(t, err)
		require.Equal(t, "streaming writer content", buf.String())
	})

	t.Run("save non-streaming response to file using BodyStream", func(t *testing.T) {
		t.Parallel()

		server := startTestServer(t, func(app *fiber.App) {
			app.Get("/regular", func(c fiber.Ctx) error {
				return c.SendString("regular file content")
			})
		})
		defer server.stop()

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

		resp, err := client.Get("http://example.com/regular")
		require.NoError(t, err)
		defer resp.Close()

		testFile := filepath.Join(t.TempDir(), "regular_test.txt")
		err = resp.Save(testFile)
		require.NoError(t, err)

		data, err := os.ReadFile(testFile) //nolint:gosec // test file is created in a temp directory
		require.NoError(t, err)
		require.Equal(t, "regular file content", string(data))
	})

	t.Run("save to io.WriteCloser closes writer", func(t *testing.T) {
		t.Parallel()

		server := startTestServer(t, func(app *fiber.App) {
			app.Get("/test", func(c fiber.Ctx) error {
				return c.SendString("test content")

Domain

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free