11/*jshint globalstrict:false, strict:false, maxlen: 500 */
2- /*global assertEqual, assertTrue, assertMatch, AQL_EXPLAIN */
2+ /*global assertEqual, assertTrue, assertMatch, fail, AQL_EXPLAIN */
33
44////////////////////////////////////////////////////////////////////////////////
55/// @brief tests for invalid OPTIONS attributes
@@ -80,6 +80,8 @@ function aqlOptionsVerificationSuite () {
8080 [ prefix + "{ indexHint: [] } RETURN 1" , "indexHint" ] ,
8181 [ prefix + "{ waitForSync: true } RETURN 1" , "waitForSync" ] ,
8282 [ prefix + "{ waitForSync: false } RETURN 1" , "waitForSync" ] ,
83+ [ prefix + "{ waitForSync: +1 } RETURN 1" , "waitForSync" ] ,
84+ [ prefix + "{ waitForSync: -1 } RETURN 1" , "waitForSync" ] ,
8385 [ prefix + "{ method: 'hash' } RETURN 1" , "method" ] ,
8486 [ prefix + "{ tititi: 'piff' } RETURN 1" , "tititi" ] ,
8587 ] ;
@@ -106,7 +108,19 @@ function aqlOptionsVerificationSuite () {
106108 [ prefix + "{ tititi: 'piff' } RETURN 1" , "tititi" ] ,
107109 ] ;
108110
109- checkQueries ( "FOR" , queries ) ;
111+ // arangosearch only likes boolean attributes for its waitForSync value
112+ try {
113+ AQL_EXPLAIN ( prefix + "{ waitForSync: +1 } RETURN 1" ) ;
114+ fail ( ) ;
115+ } catch ( err ) {
116+ assertEqual ( errors . ERROR_BAD_PARAMETER . code , err . errorNum ) ;
117+ }
118+ try {
119+ AQL_EXPLAIN ( prefix + "{ waitForSync: -1 } RETURN 1" ) ;
120+ fail ( ) ;
121+ } catch ( err ) {
122+ assertEqual ( errors . ERROR_BAD_PARAMETER . code , err . errorNum ) ;
123+ }
110124 } ,
111125
112126 testTraversal : function ( ) {
@@ -130,6 +144,8 @@ function aqlOptionsVerificationSuite () {
130144 [ prefix + "{ bfs: true, order: 'bfs' } RETURN 1" , "order" ] ,
131145 [ prefix + "{ waitForSync: true } RETURN 1" , "waitForSync" ] ,
132146 [ prefix + "{ waitForSync: false } RETURN 1" , "waitForSync" ] ,
147+ [ prefix + "{ waitForSync: +1 } RETURN 1" , "waitForSync" ] ,
148+ [ prefix + "{ waitForSync: -1 } RETURN 1" , "waitForSync" ] ,
133149 [ prefix + "{ method: 'hash' } RETURN 1" , "method" ] ,
134150 [ prefix + "{ tititi: 'piff' } RETURN 1" , "tititi" ] ,
135151 ] ;
@@ -144,7 +160,10 @@ function aqlOptionsVerificationSuite () {
144160 [ prefix + "{ defaultWeight: 42.5 } RETURN 1" ] ,
145161 [ prefix + "{ weightAttribute: false } RETURN 1" , "weightAttribute" ] ,
146162 [ prefix + "{ defaultWeight: false } RETURN 1" , "defaultWeight" ] ,
163+ [ prefix + "{ waitForSync: false } RETURN 1" , "waitForSync" ] ,
147164 [ prefix + "{ waitForSync: true } RETURN 1" , "waitForSync" ] ,
165+ [ prefix + "{ waitForSync: +1 } RETURN 1" , "waitForSync" ] ,
166+ [ prefix + "{ waitForSync: -1 } RETURN 1" , "waitForSync" ] ,
148167 [ prefix + "{ method: 'hash' } RETURN 1" , "method" ] ,
149168 [ prefix + "{ tititi: 'piff' } RETURN 1" , "tititi" ] ,
150169 ] ;
@@ -158,7 +177,10 @@ function aqlOptionsVerificationSuite () {
158177 [ prefix + "{ method: 'sorted' } RETURN x" ] ,
159178 [ prefix + "{ method: 'hash' } RETURN x" ] ,
160179 [ prefix + "{ method: 'foxx' } RETURN x" , "method" ] ,
180+ [ prefix + "{ waitForSync: false } RETURN x" , "waitForSync" ] ,
161181 [ prefix + "{ waitForSync: true } RETURN x" , "waitForSync" ] ,
182+ [ prefix + "{ waitForSync: +1 } RETURN x" , "waitForSync" ] ,
183+ [ prefix + "{ waitForSync: -1 } RETURN x" , "waitForSync" ] ,
162184 [ prefix + "{ tititi: 'piff' } RETURN x" , "tititi" ] ,
163185 ] ;
164186
@@ -170,6 +192,8 @@ function aqlOptionsVerificationSuite () {
170192 const queries = [
171193 [ prefix + "{ waitForSync: false }" ] ,
172194 [ prefix + "{ waitForSync: true }" ] ,
195+ [ prefix + "{ waitForSync: +1 }" ] ,
196+ [ prefix + "{ waitForSync: -1 }" ] ,
173197 [ prefix + "{ skipDocumentValidation: true }" ] ,
174198 [ prefix + "{ keepNull: true }" ] ,
175199 [ prefix + "{ mergeObjects: true }" ] ,
@@ -191,6 +215,8 @@ function aqlOptionsVerificationSuite () {
191215 const queries = [
192216 [ prefix + "{ waitForSync: false }" ] ,
193217 [ prefix + "{ waitForSync: true }" ] ,
218+ [ prefix + "{ waitForSync: +1 }" ] ,
219+ [ prefix + "{ waitForSync: -1 }" ] ,
194220 [ prefix + "{ skipDocumentValidation: true }" ] ,
195221 [ prefix + "{ keepNull: true }" ] ,
196222 [ prefix + "{ mergeObjects: true }" ] ,
@@ -212,6 +238,8 @@ function aqlOptionsVerificationSuite () {
212238 const queries = [
213239 [ prefix + "{ waitForSync: false }" ] ,
214240 [ prefix + "{ waitForSync: true }" ] ,
241+ [ prefix + "{ waitForSync: +1 }" ] ,
242+ [ prefix + "{ waitForSync: -1 }" ] ,
215243 [ prefix + "{ skipDocumentValidation: true }" ] ,
216244 [ prefix + "{ keepNull: true }" ] ,
217245 [ prefix + "{ mergeObjects: true }" ] ,
@@ -233,6 +261,8 @@ function aqlOptionsVerificationSuite () {
233261 const queries = [
234262 [ prefix + "{ waitForSync: false }" ] ,
235263 [ prefix + "{ waitForSync: true }" ] ,
264+ [ prefix + "{ waitForSync: +1 }" ] ,
265+ [ prefix + "{ waitForSync: -1 }" ] ,
236266 [ prefix + "{ skipDocumentValidation: true }" ] ,
237267 [ prefix + "{ keepNull: true }" ] ,
238268 [ prefix + "{ mergeObjects: true }" ] ,
@@ -254,6 +284,8 @@ function aqlOptionsVerificationSuite () {
254284 const queries = [
255285 [ prefix + "{ waitForSync: false }" ] ,
256286 [ prefix + "{ waitForSync: true }" ] ,
287+ [ prefix + "{ waitForSync: +1 }" ] ,
288+ [ prefix + "{ waitForSync: -1 }" ] ,
257289 [ prefix + "{ skipDocumentValidation: true }" ] ,
258290 [ prefix + "{ keepNull: true }" ] ,
259291 [ prefix + "{ mergeObjects: true }" ] ,
0 commit comments