Home / Function/ Test_Sliding_Window() — fiber Function Reference

Test_Sliding_Window() — fiber Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  c8eb77d4_1ed6_863a_4e29_1a36476b5783["Test_Sliding_Window()"]
  0509da96_221e_0d0d_fe2e_f2e2e3695b6f["limiter_test.go"]
  c8eb77d4_1ed6_863a_4e29_1a36476b5783 -->|defined in| 0509da96_221e_0d0d_fe2e_f2e2e3695b6f
  style c8eb77d4_1ed6_863a_4e29_1a36476b5783 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/limiter/limiter_test.go lines 1671–1722

func Test_Sliding_Window(t *testing.T) {
	t.Parallel()
	app := fiber.New()
	app.Use(New(Config{
		Max:               10,
		Expiration:        1 * time.Second,
		Storage:           memory.New(),
		LimiterMiddleware: SlidingWindow{},
	}))

	app.Get("/", func(c fiber.Ctx) error {
		return c.SendString("Hello tester!")
	})

	singleRequest := func(shouldFail bool) {
		resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", http.NoBody))
		if shouldFail {
			require.NoError(t, err)
			require.Equal(t, 429, resp.StatusCode)
		} else {
			require.NoError(t, err)
			require.Equal(t, fiber.StatusOK, resp.StatusCode)
		}
	}

	for range 5 {
		singleRequest(false)
	}

	time.Sleep(3 * time.Second)

	for range 5 {
		singleRequest(false)
	}

	time.Sleep(3 * time.Second)

	for range 5 {
		singleRequest(false)
	}

	time.Sleep(3 * time.Second)

	for range 10 {
		singleRequest(false)
	}

	// requests should fail now
	for range 5 {
		singleRequest(true)
	}
}

Subdomains

Frequently Asked Questions

What does Test_Sliding_Window() do?
Test_Sliding_Window() is a function in the fiber codebase, defined in middleware/limiter/limiter_test.go.
Where is Test_Sliding_Window() defined?
Test_Sliding_Window() is defined in middleware/limiter/limiter_test.go at line 1671.

Analyze Your Own Codebase

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

Try Supermodel Free