MCPcopy
hub / github.com/labstack/echo / TestRateLimiterMemoryStore_TimeOrdering

Function TestRateLimiterMemoryStore_TimeOrdering

middleware/rate_limiter_test.go:615–646  ·  view source on GitHub ↗

TestRateLimiterMemoryStore_TimeOrdering verifies time ordering consistency in rate limiting decisions

(t *testing.T)

Source from the content-addressed store, hash-verified

613
614// TestRateLimiterMemoryStore_TimeOrdering verifies time ordering consistency in rate limiting decisions
615func TestRateLimiterMemoryStore_TimeOrdering(t *testing.T) {
616 t.Parallel()
617
618 store := NewRateLimiterMemoryStoreWithConfig(RateLimiterMemoryStoreConfig{
619 Rate: 1,
620 Burst: 2,
621 ExpiresIn: 5 * time.Second,
622 })
623
624 currentTime := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
625 store.timeNow = func() time.Time {
626 return currentTime
627 }
628
629 // First two requests should succeed (burst=2)
630 allowed1, _ := store.Allow("user1")
631 assert.True(t, allowed1, "Request 1 should be allowed (burst)")
632
633 allowed2, _ := store.Allow("user1")
634 assert.True(t, allowed2, "Request 2 should be allowed (burst)")
635
636 // Third request should be denied
637 allowed3, _ := store.Allow("user1")
638 assert.False(t, allowed3, "Request 3 should be denied (burst exhausted)")
639
640 // Advance time by 1 second
641 currentTime = currentTime.Add(1 * time.Second)
642
643 // Fourth request should succeed
644 allowed4, _ := store.Allow("user1")
645 assert.True(t, allowed4, "Request 4 should be allowed (1 token available)")
646}

Callers

nothing calls this directly

Calls 3

AllowMethod · 0.65
AddMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…