55 "sync/atomic"
66 "testing"
77 "time"
8+
9+ "github.com/getsentry/sentry-go/internal/ratelimit"
810)
911
1012type testItem struct {
@@ -14,35 +16,35 @@ type testItem struct {
1416
1517func TestNewBuffer (t * testing.T ) {
1618 t .Run ("with valid capacity" , func (t * testing.T ) {
17- buffer := NewBuffer [* testItem ](DataCategoryError , 50 , OverflowPolicyDropOldest )
19+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 50 , OverflowPolicyDropOldest )
1820 if buffer .Capacity () != 50 {
1921 t .Errorf ("Expected capacity 50, got %d" , buffer .Capacity ())
2022 }
21- if buffer .Category () != DataCategoryError {
23+ if buffer .Category () != ratelimit . CategoryError {
2224 t .Errorf ("Expected category error, got %s" , buffer .Category ())
2325 }
24- if buffer .Priority () != PriorityCritical {
26+ if buffer .Priority () != ratelimit . PriorityCritical {
2527 t .Errorf ("Expected priority critical, got %s" , buffer .Priority ())
2628 }
2729 })
2830
2931 t .Run ("with zero capacity" , func (t * testing.T ) {
30- buffer := NewBuffer [* testItem ](DataCategoryLog , 0 , OverflowPolicyDropOldest )
32+ buffer := NewBuffer [* testItem ](ratelimit . CategoryLog , 0 , OverflowPolicyDropOldest )
3133 if buffer .Capacity () != 100 {
3234 t .Errorf ("Expected default capacity 100, got %d" , buffer .Capacity ())
3335 }
3436 })
3537
3638 t .Run ("with negative capacity" , func (t * testing.T ) {
37- buffer := NewBuffer [* testItem ](DataCategoryLog , - 10 , OverflowPolicyDropOldest )
39+ buffer := NewBuffer [* testItem ](ratelimit . CategoryLog , - 10 , OverflowPolicyDropOldest )
3840 if buffer .Capacity () != 100 {
3941 t .Errorf ("Expected default capacity 100, got %d" , buffer .Capacity ())
4042 }
4143 })
4244}
4345
4446func TestBufferBasicOperations (t * testing.T ) {
45- buffer := NewBuffer [* testItem ](DataCategoryError , 3 , OverflowPolicyDropOldest )
47+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 3 , OverflowPolicyDropOldest )
4648
4749 // Test empty buffer
4850 if ! buffer .IsEmpty () {
@@ -81,7 +83,7 @@ func TestBufferBasicOperations(t *testing.T) {
8183}
8284
8385func TestBufferPollOperation (t * testing.T ) {
84- buffer := NewBuffer [* testItem ](DataCategoryError , 3 , OverflowPolicyDropOldest )
86+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 3 , OverflowPolicyDropOldest )
8587
8688 // Test polling from empty buffer
8789 item , ok := buffer .Poll ()
@@ -124,7 +126,7 @@ func TestBufferPollOperation(t *testing.T) {
124126}
125127
126128func TestBufferOverflow (t * testing.T ) {
127- buffer := NewBuffer [* testItem ](DataCategoryError , 2 , OverflowPolicyDropOldest )
129+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 2 , OverflowPolicyDropOldest )
128130
129131 // Fill buffer to capacity
130132 item1 := & testItem {id : 1 , data : "first" }
@@ -168,7 +170,7 @@ func TestBufferOverflow(t *testing.T) {
168170}
169171
170172func TestBufferDrain (t * testing.T ) {
171- buffer := NewBuffer [* testItem ](DataCategoryError , 5 , OverflowPolicyDropOldest )
173+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 5 , OverflowPolicyDropOldest )
172174
173175 // Drain empty buffer
174176 items := buffer .Drain ()
@@ -204,7 +206,7 @@ func TestBufferDrain(t *testing.T) {
204206}
205207
206208func TestBufferMetrics (t * testing.T ) {
207- buffer := NewBuffer [* testItem ](DataCategoryError , 2 , OverflowPolicyDropOldest )
209+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 2 , OverflowPolicyDropOldest )
208210
209211 // Initial metrics
210212 if buffer .OfferedCount () != 0 {
@@ -228,7 +230,7 @@ func TestBufferMetrics(t *testing.T) {
228230}
229231
230232func TestBufferConcurrency (t * testing.T ) {
231- buffer := NewBuffer [* testItem ](DataCategoryError , 100 , OverflowPolicyDropOldest )
233+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 100 , OverflowPolicyDropOldest )
232234
233235 const numGoroutines = 10
234236 const itemsPerGoroutine = 50
@@ -288,13 +290,13 @@ func TestBufferConcurrency(t *testing.T) {
288290
289291func TestBufferDifferentCategories (t * testing.T ) {
290292 testCases := []struct {
291- category DataCategory
292- expectedPriority Priority
293+ category ratelimit. Category
294+ expectedPriority ratelimit. Priority
293295 }{
294- {DataCategoryError , PriorityCritical },
295- {DataCategoryCheckIn , PriorityHigh },
296- {DataCategoryLog , PriorityMedium },
297- {DataCategoryTransaction , PriorityLow },
296+ {ratelimit . CategoryError , ratelimit . PriorityCritical },
297+ {ratelimit . CategoryMonitor , ratelimit . PriorityHigh },
298+ {ratelimit . CategoryLog , ratelimit . PriorityMedium },
299+ {ratelimit . CategoryTransaction , ratelimit . PriorityLow },
298300 }
299301
300302 for _ , tc := range testCases {
@@ -315,7 +317,7 @@ func TestBufferStressTest(t *testing.T) {
315317 t .Skip ("Skipping stress test in short mode" )
316318 }
317319
318- buffer := NewBuffer [* testItem ](DataCategoryError , 1000 , OverflowPolicyDropOldest )
320+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 1000 , OverflowPolicyDropOldest )
319321
320322 const duration = 100 * time .Millisecond
321323 const numProducers = 5
@@ -392,7 +394,7 @@ func TestBufferStressTest(t *testing.T) {
392394}
393395
394396func TestOverflowPolicyDropOldest (t * testing.T ) {
395- buffer := NewBuffer [* testItem ](DataCategoryError , 2 , OverflowPolicyDropOldest )
397+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 2 , OverflowPolicyDropOldest )
396398
397399 // Fill buffer to capacity
398400 item1 := & testItem {id : 1 , data : "first" }
@@ -432,7 +434,7 @@ func TestOverflowPolicyDropOldest(t *testing.T) {
432434}
433435
434436func TestOverflowPolicyDropNewest (t * testing.T ) {
435- buffer := NewBuffer [* testItem ](DataCategoryError , 2 , OverflowPolicyDropNewest )
437+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 2 , OverflowPolicyDropNewest )
436438
437439 // Fill buffer to capacity
438440 item1 := & testItem {id : 1 , data : "first" }
@@ -472,7 +474,7 @@ func TestOverflowPolicyDropNewest(t *testing.T) {
472474}
473475
474476func TestBufferDroppedCallback (t * testing.T ) {
475- buffer := NewBuffer [* testItem ](DataCategoryError , 2 , OverflowPolicyDropOldest )
477+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 2 , OverflowPolicyDropOldest )
476478
477479 var droppedItems []* testItem
478480 var dropReasons []string
@@ -510,7 +512,7 @@ func TestBufferDroppedCallback(t *testing.T) {
510512}
511513
512514func TestBufferPollBatch (t * testing.T ) {
513- buffer := NewBuffer [* testItem ](DataCategoryError , 5 , OverflowPolicyDropOldest )
515+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 5 , OverflowPolicyDropOldest )
514516
515517 // Add some items
516518 for i := 1 ; i <= 5 ; i ++ {
@@ -538,7 +540,7 @@ func TestBufferPollBatch(t *testing.T) {
538540}
539541
540542func TestBufferPeek (t * testing.T ) {
541- buffer := NewBuffer [* testItem ](DataCategoryError , 3 , OverflowPolicyDropOldest )
543+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 3 , OverflowPolicyDropOldest )
542544
543545 // Test peek on empty buffer
544546 _ , ok := buffer .Peek ()
@@ -565,11 +567,11 @@ func TestBufferPeek(t *testing.T) {
565567}
566568
567569func TestBufferAdvancedMetrics (t * testing.T ) {
568- buffer := NewBuffer [* testItem ](DataCategoryError , 2 , OverflowPolicyDropOldest )
570+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 2 , OverflowPolicyDropOldest )
569571
570572 // Test initial metrics
571573 metrics := buffer .GetMetrics ()
572- if metrics .Category != DataCategoryError {
574+ if metrics .Category != ratelimit . CategoryError {
573575 t .Errorf ("Expected category error, got %s" , metrics .Category )
574576 }
575577 if metrics .Capacity != 2 {
@@ -609,7 +611,7 @@ func TestBufferAdvancedMetrics(t *testing.T) {
609611}
610612
611613func TestBufferClear (t * testing.T ) {
612- buffer := NewBuffer [* testItem ](DataCategoryError , 3 , OverflowPolicyDropOldest )
614+ buffer := NewBuffer [* testItem ](ratelimit . CategoryError , 3 , OverflowPolicyDropOldest )
613615
614616 // Add some items
615617 buffer .Offer (& testItem {id : 1 , data : "test" })
0 commit comments