@@ -58,6 +58,7 @@ import {
58
58
59
59
import * as persistenceHelpers from './persistence_test_helpers' ;
60
60
import { TestIndexManager } from './test_index_manager' ;
61
+ import { FieldFilter } from '../../../src/core/target' ;
61
62
62
63
describe ( 'MemoryIndexManager' , async ( ) => {
63
64
genericIndexManagerTests ( persistenceHelpers . testMemoryEagerPersistence ) ;
@@ -348,77 +349,65 @@ describe('IndexedDbIndexManager', async () => {
348
349
349
350
it ( 'applies equals with not equals filter on same field' , async ( ) => {
350
351
await setUpSingleValueFilter ( ) ;
351
- let q = queryWithAddedFilter (
352
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '>' , 1 ) ) ,
353
- filter ( 'count' , '!=' , 2 )
354
- ) ;
355
- await verifyResults ( q , 'coll/val3' ) ;
356
-
357
- q = queryWithAddedFilter (
358
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '==' , 1 ) ) ,
359
- filter ( 'count' , '!=' , 2 )
360
- ) ;
361
- await verifyResults ( q , 'coll/val1' ) ;
362
-
363
- q = queryWithAddedFilter (
364
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '==' , 1 ) ) ,
365
- filter ( 'count' , '!=' , 1 )
366
- ) ;
367
- await verifyResults ( q ) ;
368
-
369
- q = queryWithAddedFilter (
370
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '>' , 2 ) ) ,
371
- filter ( 'count' , '!=' , 2 )
372
- ) ;
373
- await verifyResults ( q , 'coll/val3' ) ;
374
352
375
- q = queryWithAddedFilter (
376
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '>=' , 2 ) ) ,
377
- filter ( 'count' , '!=' , 2 )
378
- ) ;
379
- await verifyResults ( q , 'coll/val3' ) ;
380
-
381
- q = queryWithAddedFilter (
382
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '<=' , 2 ) ) ,
383
- filter ( 'count' , '!=' , 2 )
384
- ) ;
385
- await verifyResults ( q , 'coll/val1' ) ;
386
-
387
- q = queryWithAddedFilter (
388
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '<=' , 2 ) ) ,
389
- filter ( 'count' , '!=' , 1 )
390
- ) ;
391
- await verifyResults ( q , 'coll/val2' ) ;
392
-
393
- q = queryWithAddedFilter (
394
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '<' , 2 ) ) ,
395
- filter ( 'count' , '!=' , 2 )
396
- ) ;
397
- await verifyResults ( q , 'coll/val1' ) ;
398
-
399
- q = queryWithAddedFilter (
400
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '<' , 2 ) ) ,
401
- filter ( 'count' , '!=' , 1 )
402
- ) ;
403
- await verifyResults ( q ) ;
404
-
405
- q = queryWithAddedFilter (
406
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '>' , 2 ) ) ,
407
- filter ( 'count' , 'not-in' , [ 3 ] )
408
- ) ;
409
- await verifyResults ( q ) ;
410
-
411
- q = queryWithAddedFilter (
412
- queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '>' , 2 ) ) ,
413
- filter ( 'count' , 'not-in' , [ 2 , 2 ] )
414
- ) ;
415
- await verifyResults ( q , 'coll/val3' ) ;
416
- } ) ;
353
+ const filtersAndResults : Array < FieldFilter [ ] | string [ ] > = [
354
+ [ filter ( 'count' , '>' , 1 ) , filter ( 'count' , '!=' , 2 ) ] ,
355
+ [ 'coll/val3' ] ,
356
+ [ filter ( 'count' , '==' , 1 ) , filter ( 'count' , '!=' , 2 ) ] ,
357
+ [ 'coll/val1' ] ,
358
+ [ filter ( 'count' , '==' , 1 ) , filter ( 'count' , '!=' , 1 ) ] ,
359
+ [ ] ,
360
+ [ filter ( 'count' , '>' , 2 ) , filter ( 'count' , '!=' , 2 ) ] ,
361
+ [ 'coll/val3' ] ,
362
+ [ filter ( 'count' , '>=' , 2 ) , filter ( 'count' , '!=' , 2 ) ] ,
363
+ [ 'coll/val3' ] ,
364
+ [ filter ( 'count' , '<=' , 2 ) , filter ( 'count' , '!=' , 2 ) ] ,
365
+ [ 'coll/val1' ] ,
366
+ [ filter ( 'count' , '<=' , 2 ) , filter ( 'count' , '!=' , 1 ) ] ,
367
+ [ 'coll/val2' ] ,
368
+ [ filter ( 'count' , '<' , 2 ) , filter ( 'count' , '!=' , 2 ) ] ,
369
+ [ 'coll/val1' ] ,
370
+ [ filter ( 'count' , '<' , 2 ) , filter ( 'count' , '!=' , 1 ) ] ,
371
+ [ ] ,
372
+ [ filter ( 'count' , '>' , 2 ) , filter ( 'count' , 'not-in' , [ 3 ] ) ] ,
373
+ [ ] ,
374
+ [ filter ( 'count' , '>=' , 2 ) , filter ( 'count' , 'not-in' , [ 3 ] ) ] ,
375
+ [ 'coll/val2' ] ,
376
+ [ filter ( 'count' , '>=' , 2 ) , filter ( 'count' , 'not-in' , [ 3 , 3 ] ) ] ,
377
+ [ 'coll/val2' ] ,
378
+ [
379
+ filter ( 'count' , '>' , 1 ) ,
380
+ filter ( 'count' , '<' , 3 ) ,
381
+ filter ( 'count' , '!=' , 2 )
382
+ ] ,
383
+ [ ] ,
384
+ [
385
+ filter ( 'count' , '>=' , 1 ) ,
386
+ filter ( 'count' , '<' , 3 ) ,
387
+ filter ( 'count' , '!=' , 2 )
388
+ ] ,
389
+ [ 'coll/val1' ] ,
390
+ [
391
+ filter ( 'count' , '>=' , 1 ) ,
392
+ filter ( 'count' , '<=' , 3 ) ,
393
+ filter ( 'count' , '!=' , 2 )
394
+ ] ,
395
+ [ 'coll/val1' , 'coll/val3' ] ,
396
+ [
397
+ filter ( 'count' , '>' , 1 ) ,
398
+ filter ( 'count' , '<=' , 3 ) ,
399
+ filter ( 'count' , '!=' , 2 )
400
+ ] ,
401
+ [ 'coll/val3' ]
402
+ ] ;
417
403
418
- it ( 'applies less than filter' , async ( ) => {
419
- await setUpSingleValueFilter ( ) ;
420
- const q = queryWithAddedFilter ( query ( 'coll' ) , filter ( 'count' , '<' , 2 ) ) ;
421
- await verifyResults ( q , 'coll/val1' ) ;
404
+ for ( let i = 0 ; i < filtersAndResults . length ; i += 2 ) {
405
+ let q = query ( 'coll' ) ;
406
+ for ( const filter of filtersAndResults [ i ] as FieldFilter [ ] ) {
407
+ q = queryWithAddedFilter ( q , filter ) ;
408
+ }
409
+ await verifyResults ( q , ...( filtersAndResults [ i + 1 ] as string [ ] ) ) ;
410
+ }
422
411
} ) ;
423
412
424
413
it ( 'applies less than or equals filter' , async ( ) => {
0 commit comments