8
8
package tests
9
9
10
10
import (
11
- "context"
12
11
"fmt"
13
12
"slices"
14
13
"testing"
@@ -40,7 +39,7 @@ func TestIndexer(t *testing.T, indexer internal.Indexer) {
40
39
data [v .ID ] = v
41
40
}
42
41
require .NoError (t , indexer .Index (t .Context (), d ... ))
43
- require . NoError (t , waitData ( indexer , int64 (len (data ) )))
42
+ waitData (t , indexer , int64 (len (data )))
44
43
}
45
44
46
45
defer func () {
@@ -54,13 +53,13 @@ func TestIndexer(t *testing.T, indexer internal.Indexer) {
54
53
for _ , v := range c .ExtraData {
55
54
data [v .ID ] = v
56
55
}
57
- require . NoError (t , waitData ( indexer , int64 (len (data ) )))
56
+ waitData (t , indexer , int64 (len (data )))
58
57
defer func () {
59
58
for _ , v := range c .ExtraData {
60
59
require .NoError (t , indexer .Delete (t .Context (), v .ID ))
61
60
delete (data , v .ID )
62
61
}
63
- require . NoError (t , waitData ( indexer , int64 (len (data ) )))
62
+ waitData (t , indexer , int64 (len (data )))
64
63
}()
65
64
}
66
65
@@ -751,22 +750,10 @@ func countIndexerData(data map[int64]*internal.IndexerData, f func(v *internal.I
751
750
752
751
// waitData waits for the indexer to index all data.
753
752
// Some engines like Elasticsearch index data asynchronously, so we need to wait for a while.
754
- func waitData (indexer internal.Indexer , total int64 ) error {
755
- var actual int64
756
- for i := 0 ; i < 100 ; i ++ {
757
- result , err := indexer .Search (context .Background (), & internal.SearchOptions {
758
- Paginator : & db.ListOptions {
759
- PageSize : 0 ,
760
- },
761
- })
762
- if err != nil {
763
- return err
764
- }
765
- actual = result .Total
766
- if actual == total {
767
- return nil
768
- }
769
- time .Sleep (100 * time .Millisecond )
770
- }
771
- return fmt .Errorf ("waitData: expected %d, actual %d" , total , actual )
753
+ func waitData (t * testing.T , indexer internal.Indexer , total int64 ) {
754
+ assert .Eventually (t , func () bool {
755
+ result , err := indexer .Search (t .Context (), & internal.SearchOptions {Paginator : & db.ListOptions {}})
756
+ require .NoError (t , err )
757
+ return result .Total == total
758
+ }, 10 * time .Second , 100 * time .Millisecond , "expected total=%d" , total )
772
759
}
0 commit comments