Home / Function/ Test_Client_HostClient_Behavior() — fiber Function Reference

Test_Client_HostClient_Behavior() — fiber Function Reference

Architecture documentation for the Test_Client_HostClient_Behavior() function in client_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  30fc5978_0571_1f22_5bf7_5752653b6f45["Test_Client_HostClient_Behavior()"]
  5d11d0f7_2b3b_7bf3_3b1d_76d79d6872a2["client_test.go"]
  30fc5978_0571_1f22_5bf7_5752653b6f45 -->|defined in| 5d11d0f7_2b3b_7bf3_3b1d_76d79d6872a2
  d60625b6_c243_6c2d_ba86_cf99b49fb107["startTestServerWithPort()"]
  30fc5978_0571_1f22_5bf7_5752653b6f45 -->|calls| d60625b6_c243_6c2d_ba86_cf99b49fb107
  style 30fc5978_0571_1f22_5bf7_5752653b6f45 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

client/client_test.go lines 306–462

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

	t.Run("do and redirects", func(t *testing.T) {
		t.Parallel()

		app, addr := startTestServerWithPort(t, func(app *fiber.App) {
			app.Get("/ok", func(c fiber.Ctx) error {
				return c.SendString("ok")
			})
			app.Get("/redirect", func(c fiber.Ctx) error {
				return c.Redirect().Status(fiber.StatusFound).To("/ok")
			})
		})
		t.Cleanup(func() {
			require.NoError(t, app.Shutdown())
		})

		client := NewWithHostClient(&fasthttp.HostClient{Addr: addr})

		resp, err := client.Get("http://" + addr + "/ok")
		require.NoError(t, err)
		require.Equal(t, fiber.StatusOK, resp.StatusCode())
		require.Equal(t, "ok", resp.String())

		resp, err = client.Get("http://"+addr+"/redirect", Config{MaxRedirects: 1})
		require.NoError(t, err)
		require.Equal(t, fiber.StatusOK, resp.StatusCode())
		require.Equal(t, "ok", resp.String())
	})

	t.Run("retries respect dial overrides", func(t *testing.T) {
		t.Parallel()

		app, addr := startTestServerWithPort(t, func(app *fiber.App) {
			app.Get("/", func(c fiber.Ctx) error {
				return c.SendString("retry")
			})
		})
		t.Cleanup(func() {
			require.NoError(t, app.Shutdown())
		})

		client := NewWithHostClient(&fasthttp.HostClient{Addr: addr})
		client.SetRetryConfig(&RetryConfig{
			InitialInterval: time.Millisecond,
			MaxRetryCount:   2,
		})

		var attempts int32
		client.SetDial(func(address string) (net.Conn, error) {
			if atomic.AddInt32(&attempts, 1) == 1 {
				return nil, errors.New("dial failure")
			}
			return fasthttp.Dial(address)
		})

		resp, err := client.Get("http://" + addr)
		require.NoError(t, err)
		require.Equal(t, fiber.StatusOK, resp.StatusCode())
		require.Equal(t, "retry", resp.String())
		require.EqualValues(t, 2, atomic.LoadInt32(&attempts))
	})

	t.Run("tls configuration propagates", func(t *testing.T) {
		t.Parallel()

		serverTLSConf, clientTLSConf, err := tlstest.GetTLSConfigs()
		require.NoError(t, err)

		ln, err := net.Listen(fiber.NetworkTCP4, "127.0.0.1:0")
		require.NoError(t, err)
		ln = tls.NewListener(ln, serverTLSConf)

		app := fiber.New()
		app.Get("/", func(c fiber.Ctx) error {
			return c.SendString("tls-host")
		})

		go func() {
			assert.NoError(t, app.Listener(ln, fiber.ListenConfig{

Domain

Subdomains

Frequently Asked Questions

What does Test_Client_HostClient_Behavior() do?
Test_Client_HostClient_Behavior() is a function in the fiber codebase, defined in client/client_test.go.
Where is Test_Client_HostClient_Behavior() defined?
Test_Client_HostClient_Behavior() is defined in client/client_test.go at line 306.
What does Test_Client_HostClient_Behavior() call?
Test_Client_HostClient_Behavior() calls 1 function(s): startTestServerWithPort.

Analyze Your Own Codebase

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

Try Supermodel Free