6
6
validateToolMetadata ,
7
7
validateThrowsForInvalidArguments ,
8
8
databaseCollectionInvalidArgs ,
9
+ sleep ,
9
10
} from "../../../helpers.js" ;
10
11
import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver" ;
11
12
import type { SearchIndexStatus } from "../../../../../src/tools/mongodb/search/listSearchIndexes.js" ;
@@ -102,16 +103,18 @@ describeWithMongoDB(
102
103
{ search : true } // use a search cluster
103
104
) ;
104
105
106
+ const SEARCH_RETRIES = 10_000 ;
105
107
async function waitUntilSearchIsReady ( provider : NodeDriverServiceProvider , abortSignal : AbortSignal ) : Promise < void > {
106
108
let success = true ;
107
- for ( let i = 0 ; i < 1000 && ! abortSignal . aborted ; i ++ ) {
109
+ for ( let i = 0 ; i < SEARCH_RETRIES && ! abortSignal . aborted ; i ++ ) {
108
110
try {
109
111
await provider . insertOne ( "tmp" , "test" , { field1 : "yay" } ) ;
110
112
await provider . createSearchIndexes ( "tmp" , "test" , [ { definition : { mappings : { dynamic : true } } } ] ) ;
111
113
success = true ;
112
114
break ;
113
115
} catch ( err ) {
114
116
void err ;
117
+ await sleep ( 100 ) ;
115
118
}
116
119
}
117
120
@@ -128,7 +131,7 @@ async function waitUntilIndexIsQueryable(
128
131
abortSignal : AbortSignal
129
132
) : Promise < void > {
130
133
let success = false ;
131
- for ( let i = 0 ; i < 1000 && ! abortSignal . aborted ; i ++ ) {
134
+ for ( let i = 0 ; i < SEARCH_RETRIES && ! abortSignal . aborted ; i ++ ) {
132
135
try {
133
136
const [ indexStatus ] = await provider . getSearchIndexes ( database , collection , indexName ) ;
134
137
if ( indexStatus ?. queryable === true ) {
@@ -137,6 +140,7 @@ async function waitUntilIndexIsQueryable(
137
140
}
138
141
} catch ( err ) {
139
142
void err ;
143
+ await sleep ( 100 ) ;
140
144
}
141
145
}
142
146
0 commit comments