@@ -54,6 +54,7 @@ import {
5454import { axiosTablesRetryConfig } from '../../src/lib/openops-tables/requests-helpers' ;
5555import {
5656 addRow ,
57+ batchDeleteRows ,
5758 deleteRow ,
5859 getRowByPrimaryKeyValue ,
5960 getRows ,
@@ -321,6 +322,40 @@ describe('delete row', () => {
321322 } ) ;
322323} ) ;
323324
325+ describe ( 'batchDeleteRows' , ( ) => {
326+ beforeEach ( ( ) => {
327+ jest . clearAllMocks ( ) ;
328+ } ) ;
329+
330+ test ( 'does nothing when rowIds is empty' , async ( ) => {
331+ await batchDeleteRows ( { tableId : 1 , tokenOrResolver : 'token' , rowIds : [ ] } ) ;
332+
333+ expect ( makeOpenOpsTablesPostMock ) . not . toHaveBeenCalled ( ) ;
334+ expect ( acquireMock ) . not . toHaveBeenCalled ( ) ;
335+ } ) ;
336+
337+ test ( 'posts to batch-delete endpoint with correct url and body' , async ( ) => {
338+ makeOpenOpsTablesPostMock . mockResolvedValue ( 'mock result' ) ;
339+ createAxiosHeadersMock . mockReturnValue ( 'some header' ) ;
340+
341+ await batchDeleteRows ( {
342+ tableId : 5 ,
343+ tokenOrResolver : 'token' ,
344+ rowIds : [ 1 , 2 , 3 ] ,
345+ } ) ;
346+
347+ expect ( acquireMock ) . toBeCalledTimes ( 1 ) ;
348+ expect ( releaseMock ) . toBeCalledTimes ( 1 ) ;
349+ expect ( makeOpenOpsTablesPostMock ) . toBeCalledTimes ( 1 ) ;
350+ expect ( makeOpenOpsTablesPostMock ) . toHaveBeenCalledWith (
351+ 'api/database/rows/table/5/batch-delete/' ,
352+ { items : [ 1 , 2 , 3 ] } ,
353+ 'some header' ,
354+ ) ;
355+ expect ( createAxiosHeadersMock ) . toHaveBeenCalledWith ( 'token' ) ;
356+ } ) ;
357+ } ) ;
358+
324359describe ( 'getRowByPrimaryKeyValue' , ( ) => {
325360 beforeEach ( ( ) => {
326361 jest . clearAllMocks ( ) ;
0 commit comments