@@ -93,4 +93,46 @@ describe("Multiple Dates Selected", function () {
9393 expect ( input ) . not . toBeNull ( ) ;
9494 expect ( input ?. value ) . toBe ( "01/01/2024 (+2)" ) ;
9595 } ) ;
96+
97+ it ( "should override default format when formatMultipleDates is provided" , ( ) => {
98+ const { container : datePicker } = getDatePicker ( {
99+ selectsMultiple : true ,
100+ selectedDates : [
101+ new Date ( "2024/01/01" ) ,
102+ new Date ( "2024/01/15" ) ,
103+ new Date ( "2024/03/15" ) ,
104+ ] ,
105+ formatMultipleDates : ( dates , formatDate ) =>
106+ dates . map ( formatDate ) . join ( " | " ) ,
107+ } ) ;
108+
109+ const input = datePicker . querySelector ( "input" ) ;
110+
111+ expect ( input ) . not . toBeNull ( ) ;
112+ expect ( input ?. value ) . toBe ( "01/01/2024 | 01/15/2024 | 03/15/2024" ) ;
113+ } ) ;
114+
115+ it ( "should pass correct arguments to formatMultipleDates" , ( ) => {
116+ const selectedDates = [ new Date ( "2024/01/01" ) , new Date ( "2024/01/15" ) ] ;
117+ const mockFormatter = jest . fn (
118+ ( dates : Date [ ] , formatDate : ( d : Date ) => string ) =>
119+ dates . map ( formatDate ) . join ( ", " ) ,
120+ ) ;
121+
122+ getDatePicker ( {
123+ selectsMultiple : true ,
124+ selectedDates,
125+ formatMultipleDates : mockFormatter ,
126+ } ) ;
127+
128+ expect ( mockFormatter ) . toHaveBeenCalledTimes ( 1 ) ;
129+
130+ const [ receivedDates , receivedFormatDate ] = mockFormatter . mock . calls [ 0 ] ! ;
131+ expect ( receivedDates ) . toHaveLength ( 2 ) ;
132+ expect ( receivedDates [ 0 ] ?. getTime ( ) ) . toBe ( selectedDates [ 0 ] ?. getTime ( ) ) ;
133+ expect ( receivedDates [ 1 ] ?. getTime ( ) ) . toBe ( selectedDates [ 1 ] ?. getTime ( ) ) ;
134+
135+ expect ( typeof receivedFormatDate ) . toBe ( "function" ) ;
136+ expect ( receivedFormatDate ( new Date ( "2024/01/01" ) ) ) . toBe ( "01/01/2024" ) ;
137+ } ) ;
96138} ) ;
0 commit comments