@@ -330,21 +330,35 @@ func TestLocalQueue_WorkerpoolStatsTrackPerQueue(t *testing.T) {
330330 }
331331 }
332332
333- snapshot , err := d .Stats (context .Background ())
334- if err != nil {
335- t .Fatalf ("stats failed: %v" , err )
336- }
337- for _ , queueName := range []string {"critical" , "default" , "low" } {
338- counters , ok := snapshot .Queue (queueName )
339- if ! ok {
340- t .Fatalf ("expected queue %q in snapshot" , queueName )
333+ deadline := time .Now ().Add (500 * time .Millisecond )
334+ for {
335+ snapshot , err := d .Stats (context .Background ())
336+ if err != nil {
337+ t .Fatalf ("stats failed: %v" , err )
338+ }
339+ allProcessed := true
340+ for _ , queueName := range []string {"critical" , "default" , "low" } {
341+ counters , ok := snapshot .Queue (queueName )
342+ if ! ok {
343+ t .Fatalf ("expected queue %q in snapshot" , queueName )
344+ }
345+ if counters .Processed != 1 {
346+ allProcessed = false
347+ }
348+ if counters .Failed != 0 {
349+ t .Fatalf ("expected failed=0 for %q, got %d" , queueName , counters .Failed )
350+ }
341351 }
342- if counters . Processed != 1 {
343- t . Fatalf ( "expected processed=1 for %q, got %d" , queueName , counters . Processed )
352+ if allProcessed {
353+ break
344354 }
345- if counters .Failed != 0 {
346- t .Fatalf ("expected failed=0 for %q, got %d" , queueName , counters .Failed )
355+ if time .Now ().After (deadline ) {
356+ for _ , queueName := range []string {"critical" , "default" , "low" } {
357+ counters , _ := snapshot .Queue (queueName )
358+ t .Fatalf ("expected processed=1 for %q, got %d" , queueName , counters .Processed )
359+ }
347360 }
361+ time .Sleep (5 * time .Millisecond )
348362 }
349363}
350364
0 commit comments