@@ -33,4 +33,63 @@ describe("WeekPicker", () => {
3333 fireEvent . click ( weekNumber ?? new HTMLElement ( ) ) ;
3434 expect ( onChangeSpy ) . toHaveBeenCalled ( ) ;
3535 } ) ;
36+
37+ it ( "should change the week with few disabled dates (not all) when clicked on any week number in the picker" , ( ) => {
38+ const onChangeSpy = jest . fn ( ) ;
39+ const { container } = render (
40+ < DatePicker
41+ selected = { new Date ( "2024-01-01" ) }
42+ onChange = { onChangeSpy }
43+ showWeekPicker
44+ showWeekNumbers
45+ excludeDateIntervals = { [
46+ { start : new Date ( "2024/01/07" ) , end : new Date ( "2024/01/11" ) } ,
47+ ] }
48+ /> ,
49+ ) ;
50+
51+ const input = container . querySelector ( "input" ) ! ;
52+ expect ( input ) . not . toBeNull ( ) ;
53+
54+ fireEvent . focus ( input ) ;
55+ const weekNumber = container . querySelector (
56+ '.react-datepicker__week-number[aria-label="week 1"]' ,
57+ ) ! ;
58+ expect ( weekNumber ) . not . toBeNull ( ) ;
59+ fireEvent . click ( weekNumber ) ;
60+
61+ expect ( onChangeSpy ) . toHaveBeenCalledTimes ( 1 ) ;
62+
63+ const selectedDate = onChangeSpy . mock . calls [ 0 ] [ 0 ] ;
64+ expect ( selectedDate . getFullYear ( ) ) . toBe ( 2024 ) ;
65+ expect ( selectedDate . getMonth ( ) ) . toBe ( 0 ) ;
66+ expect ( selectedDate . getDate ( ) ) . toBe ( 12 ) ;
67+ } ) ;
68+
69+ it ( "should not change the week with all the dates in a selected week is disabled" , ( ) => {
70+ const onChangeSpy = jest . fn ( ) ;
71+ const { container } = render (
72+ < DatePicker
73+ selected = { new Date ( "2024-01-01" ) }
74+ onChange = { onChangeSpy }
75+ showWeekPicker
76+ showWeekNumbers
77+ excludeDateIntervals = { [
78+ { start : new Date ( "2024/01/07" ) , end : new Date ( "2024/01/13" ) } ,
79+ ] }
80+ /> ,
81+ ) ;
82+
83+ const input = container . querySelector ( "input" ) ! ;
84+ expect ( input ) . not . toBeNull ( ) ;
85+
86+ fireEvent . focus ( input ) ;
87+ const weekNumber = container . querySelector (
88+ '.react-datepicker__week-number[aria-label="week 1"]' ,
89+ ) ! ;
90+ expect ( weekNumber ) . not . toBeNull ( ) ;
91+ fireEvent . click ( weekNumber ) ;
92+
93+ expect ( onChangeSpy ) . not . toHaveBeenCalled ( ) ;
94+ } ) ;
3695} ) ;
0 commit comments