@@ -169,19 +169,14 @@ describe('Date range picker', () => {
169169 } ) ;
170170 describe ( 'Properties' , ( ) => {
171171 it ( 'should set the visibleMonths property correctly' , async ( ) => {
172- // picker = await fixture<IgcDateRangePickerComponent>(f
173- // html`<igc-date-range-picker
174-
175- // ></igc-date-range-picker>`
176- // );
177-
178172 expect ( picker . visibleMonths ) . to . equal ( 2 ) ;
179173
180174 picker . visibleMonths = 1 ;
181175 await elementUpdated ( picker ) ;
182176 expect ( picker . visibleMonths ) . to . equal ( 1 ) ;
183177
184178 // in case value other than 1 or 2 the value defaults to 2
179+ // @ts -expect-error: testing with an invalid visibleMonths value
185180 picker . visibleMonths = 11 ;
186181 await elementUpdated ( picker ) ;
187182 expect ( picker . visibleMonths ) . to . equal ( 2 ) ;
@@ -197,6 +192,15 @@ describe('Date range picker', () => {
197192 await elementUpdated ( picker ) ;
198193 expect ( picker . visibleMonths ) . to . equal ( 1 ) ;
199194
195+ picker = await fixture < IgcDateRangePickerComponent > (
196+ html `< igc-date-range-picker
197+ visible-months ="11 "
198+ > </ igc-date-range-picker > `
199+ ) ;
200+
201+ await elementUpdated ( picker ) ;
202+ expect ( picker . visibleMonths ) . to . equal ( 2 ) ;
203+
200204 picker = await fixture < IgcDateRangePickerComponent > (
201205 html `< igc-date-range-picker visible-months ="2 "> </ igc-date-range-picker > `
202206 ) ;
@@ -769,7 +773,7 @@ describe('Date range picker', () => {
769773 await elementUpdated ( picker ) ;
770774
771775 await selectDates ( date1 , date2 , calendar ) ;
772- expect ( eventSpy ) . not . to . be . calledWith ( 'igcChange' ) ; // TODO: should igcChange be emitted for dialog selection before clicking DONE?
776+ expect ( eventSpy ) . not . to . be . calledWith ( 'igcChange' ) ;
773777 let dialog = picker . renderRoot . querySelector ( 'igc-dialog' ) ;
774778 expect ( dialog ?. hasAttribute ( 'open' ) ) . to . equal ( true ) ;
775779 checkSelectedRange ( picker , { start : date1 . native , end : date2 . native } ) ;
@@ -801,7 +805,7 @@ describe('Date range picker', () => {
801805 await elementUpdated ( picker ) ;
802806
803807 await selectDates ( date1 , date2 , calendar ) ;
804- expect ( eventSpy ) . not . to . be . calledWith ( 'igcChange' ) ; // TODO: should igcChange be emitted for dialog selection before clicking DONE?
808+ expect ( eventSpy ) . not . to . be . calledWith ( 'igcChange' ) ;
805809 let dialog = picker . renderRoot . querySelector ( 'igc-dialog' ) ;
806810 expect ( dialog ?. hasAttribute ( 'open' ) ) . to . equal ( true ) ;
807811 checkSelectedRange ( picker , { start : date1 . native , end : date2 . native } ) ;
@@ -826,6 +830,38 @@ describe('Date range picker', () => {
826830 expect ( dateTimeInputs [ 1 ] . value ) . to . equal ( null ) ;
827831 expect ( calendar . values ) . to . deep . equal ( [ ] ) ;
828832 } ) ;
833+
834+ it ( 'should not emit igcChange when escape is pressed and the value should be the initial value' , async ( ) => {
835+ const eventSpy = spy ( picker , 'emitEvent' ) ;
836+
837+ picker . mode = 'dialog' ;
838+ const date1 = today . add ( 'day' , - 3 ) ;
839+ const date2 = today . add ( 'day' , 3 ) ;
840+ picker . value = { start : today . native , end : tomorrow . native } ;
841+ await elementUpdated ( picker ) ;
842+
843+ picker . open = true ;
844+ await elementUpdated ( picker ) ;
845+
846+ await selectDates ( date1 , date2 , calendar ) ;
847+ expect ( eventSpy ) . not . to . be . calledWith ( 'igcChange' ) ;
848+ let dialog = picker . renderRoot . querySelector ( 'igc-dialog' ) ;
849+ expect ( dialog ?. hasAttribute ( 'open' ) ) . to . equal ( true ) ;
850+ checkSelectedRange ( picker , { start : date1 . native , end : date2 . native } ) ;
851+
852+ simulateKeyboard ( picker , escapeKey ) ;
853+ await elementUpdated ( picker ) ;
854+ await elementUpdated ( dateTimeInputs [ 0 ] ) ;
855+ await elementUpdated ( dateTimeInputs [ 1 ] ) ;
856+ expect ( eventSpy ) . not . to . be . calledWith ( 'igcChange' ) ;
857+ dialog = picker . renderRoot . querySelector ( 'igc-dialog' ) ;
858+ expect ( dialog ?. hasAttribute ( 'open' ) ) . to . equal ( false ) ;
859+
860+ checkSelectedRange ( picker , {
861+ start : today . native ,
862+ end : tomorrow . native ,
863+ } ) ;
864+ } ) ;
829865 } ) ;
830866 describe ( 'Selection via the range selection chips' , ( ) => {
831867 const previousThreeDaysStart = CalendarDay . from ( today . native ) . add (
0 commit comments