Home / Function/ Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() — fiber Function Reference

Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() — fiber Function Reference

Architecture documentation for the Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() function in limiter_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  2b13e59a_e38c_ab70_c154_7c2edddd65d9["Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration()"]
  0509da96_221e_0d0d_fe2e_f2e2e3695b6f["limiter_test.go"]
  2b13e59a_e38c_ab70_c154_7c2edddd65d9 -->|defined in| 0509da96_221e_0d0d_fe2e_f2e2e3695b6f
  a70ffa85_f38b_cd52_97fa_bce8a29e5dab["sleepForRetryAfter()"]
  2b13e59a_e38c_ab70_c154_7c2edddd65d9 -->|calls| a70ffa85_f38b_cd52_97fa_bce8a29e5dab
  style 2b13e59a_e38c_ab70_c154_7c2edddd65d9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/limiter/limiter_test.go lines 690–723

func Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration(t *testing.T) {
	t.Parallel()
	app := fiber.New()

	app.Use(New(Config{
		Max:               2,
		Expiration:        10 * time.Second,
		ExpirationFunc:    func(_ fiber.Ctx) time.Duration { return 2 * time.Second },
		LimiterMiddleware: SlidingWindow{},
	}))

	app.Get("/", func(c fiber.Ctx) error {
		return c.SendStatus(fiber.StatusOK)
	})

	resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody))
	require.NoError(t, err)
	require.Equal(t, fiber.StatusOK, resp.StatusCode)

	resp, err = app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody))
	require.NoError(t, err)
	require.Equal(t, fiber.StatusOK, resp.StatusCode)

	resp, err = app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody))
	require.NoError(t, err)
	require.Equal(t, fiber.StatusTooManyRequests, resp.StatusCode)

	// Sliding window needs ~2x expiration to fully reset (considers previous window)
	sleepForRetryAfter(t, resp)

	resp, err = app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody))
	require.NoError(t, err)
	require.Equal(t, fiber.StatusOK, resp.StatusCode)
}

Subdomains

Frequently Asked Questions

What does Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() do?
Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() is a function in the fiber codebase, defined in middleware/limiter/limiter_test.go.
Where is Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() defined?
Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() is defined in middleware/limiter/limiter_test.go at line 690.
What does Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() call?
Test_Limiter_Sliding_ExpirationFuncOverridesStaticExpiration() calls 1 function(s): sleepForRetryAfter.

Analyze Your Own Codebase

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

Try Supermodel Free