@@ -451,6 +451,48 @@ describe('Documents tests', () => {
451451 expect ( response . results . length ) . toEqual ( dataset . length )
452452 } )
453453
454+ test ( `${ permission } key: Delete some documents with string filters` , async ( ) => {
455+ const client = await getClient ( permission )
456+ await client . index ( indexPk . uid ) . updateFilterableAttributes ( [ 'id' ] )
457+ const { taskUid : addDocTask } = await client
458+ . index ( indexPk . uid )
459+ . addDocuments ( dataset )
460+ await client . index ( indexPk . uid ) . waitForTask ( addDocTask )
461+
462+ const task = await client
463+ . index ( indexPk . uid )
464+ . deleteDocuments ( { filter : 'id IN [1, 2]' } )
465+
466+ const resolvedTask = await client
467+ . index ( indexPk . uid )
468+ . waitForTask ( task . taskUid )
469+ const documents = await client . index ( indexPk . uid ) . getDocuments < Book > ( )
470+
471+ expect ( resolvedTask . details . deletedDocuments ) . toEqual ( 2 )
472+ expect ( documents . results . length ) . toEqual ( dataset . length - 2 )
473+ } )
474+
475+ test ( `${ permission } key: Delete some documents with array filters` , async ( ) => {
476+ const client = await getClient ( permission )
477+ await client . index ( indexPk . uid ) . updateFilterableAttributes ( [ 'id' ] )
478+ const { taskUid : addDocTask } = await client
479+ . index ( indexPk . uid )
480+ . addDocuments ( dataset )
481+ await client . index ( indexPk . uid ) . waitForTask ( addDocTask )
482+
483+ const task = await client
484+ . index ( indexPk . uid )
485+ . deleteDocuments ( { filter : [ [ 'id = 1' , 'id = 2' ] ] } )
486+
487+ const resolvedTask = await client
488+ . index ( indexPk . uid )
489+ . waitForTask ( task . taskUid )
490+ const documents = await client . index ( indexPk . uid ) . getDocuments < Book > ( )
491+
492+ expect ( resolvedTask . details . deletedDocuments ) . toEqual ( 2 )
493+ expect ( documents . results . length ) . toEqual ( dataset . length - 2 )
494+ } )
495+
454496 test ( `${ permission } key: Delete some documents from index that has NO primary key` , async ( ) => {
455497 const client = await getClient ( permission )
456498 const { taskUid : addDocTask } = await client
@@ -492,6 +534,23 @@ describe('Documents tests', () => {
492534 expect ( returnedIds ) . not . toContain ( ids [ 1 ] )
493535 } )
494536
537+ test ( `${ permission } key: Delete some documents should trigger error with a hint on unknown route` , async ( ) => {
538+ const apiKey = await getKey ( permission )
539+ const client = new MeiliSearch ( { host : `${ HOST } /indexes` , apiKey } )
540+
541+ try {
542+ await client . index ( indexPk . uid ) . deleteDocuments ( { filter : 'id = 1' } )
543+
544+ fail (
545+ 'deleteDocuments should have raised an error when the route does not exist'
546+ )
547+ } catch ( e : any ) {
548+ expect ( e . message ) . toEqual (
549+ "Not Found\nHint: It might not be working because maybe you're not up to date with the Meilisearch version that deleteDocuments call requires."
550+ )
551+ }
552+ } )
553+
495554 test ( `${ permission } key: Delete all document from index that has NO primary key` , async ( ) => {
496555 const client = await getClient ( permission )
497556 const task = await client . index ( indexNoPk . uid ) . deleteAllDocuments ( )
0 commit comments