@@ -4883,4 +4883,76 @@ describe("DatePicker", () => {
4883
4883
expect ( eventObject . target ?. value ) . toBe ( inputValue ) ;
4884
4884
} ) ;
4885
4885
} ) ;
4886
+
4887
+ describe ( "disabled" , ( ) => {
4888
+ const validateAllDisabled = ( container : HTMLElement , className : string ) => {
4889
+ const allDays = Array . from ( container . querySelectorAll ( `.${ className } ` ) ) ;
4890
+ expect ( allDays . length ) . toBeGreaterThan ( 0 ) ;
4891
+ expect (
4892
+ allDays . every ( ( day ) =>
4893
+ day . classList . contains ( `${ className } --disabled` ) ,
4894
+ ) ,
4895
+ ) . toBe ( true ) ;
4896
+ } ;
4897
+
4898
+ const validateNonExistence = (
4899
+ container : HTMLElement ,
4900
+ querySelector : string ,
4901
+ ) => {
4902
+ const element = container . querySelector ( querySelector ) ;
4903
+ expect ( element ) . toBeFalsy ( ) ;
4904
+ } ;
4905
+
4906
+ it ( "should disable all days and headers in DatePicker when disabled prop is true" , ( ) => {
4907
+ const { container } = render ( < DatePicker inline disabled /> ) ;
4908
+
4909
+ validateAllDisabled ( container , "react-datepicker__day" ) ;
4910
+ validateAllDisabled ( container , "react-datepicker__day-name" ) ;
4911
+ validateNonExistence ( container , "react-datepicker__navigation" ) ;
4912
+ } ) ;
4913
+
4914
+ it ( "should disable all days and headers in DatePicker Range Selector when disabled prop is true" , ( ) => {
4915
+ const { container } = render ( < DatePicker selectsRange inline disabled /> ) ;
4916
+
4917
+ validateAllDisabled ( container , "react-datepicker__day" ) ;
4918
+ validateAllDisabled ( container , "react-datepicker__day-name" ) ;
4919
+ validateNonExistence ( container , "react-datepicker__navigation" ) ;
4920
+ } ) ;
4921
+
4922
+ it ( "should disable all days and headers in MonthPicker when disabled prop is true" , ( ) => {
4923
+ const { container } = render (
4924
+ < DatePicker showMonthYearPicker inline disabled /> ,
4925
+ ) ;
4926
+
4927
+ validateAllDisabled ( container , "react-datepicker__month-text" ) ;
4928
+ validateNonExistence ( container , "react-datepicker__navigation" ) ;
4929
+ } ) ;
4930
+
4931
+ it ( "should disable all days and headers in YearPicker when disabled prop is true" , ( ) => {
4932
+ const { container } = render (
4933
+ < DatePicker showYearPicker inline disabled /> ,
4934
+ ) ;
4935
+
4936
+ validateAllDisabled ( container , "react-datepicker__year-text" ) ;
4937
+ validateNonExistence ( container , "react-datepicker__navigation" ) ;
4938
+ } ) ;
4939
+
4940
+ it ( "should disable all days and headers in WeekPicker when disabled prop is true" , ( ) => {
4941
+ const { container } = render (
4942
+ < DatePicker showWeekNumbers showWeekPicker inline disabled /> ,
4943
+ ) ;
4944
+
4945
+ validateAllDisabled ( container , "react-datepicker__day" ) ;
4946
+ validateNonExistence ( container , "react-datepicker__navigation" ) ;
4947
+ } ) ;
4948
+
4949
+ it ( "should disable all days and headers in QuarterPicker when disabled prop is true" , ( ) => {
4950
+ const { container } = render (
4951
+ < DatePicker showQuarterYearPicker inline disabled /> ,
4952
+ ) ;
4953
+
4954
+ validateAllDisabled ( container , "react-datepicker__quarter-text" ) ;
4955
+ validateNonExistence ( container , "react-datepicker__navigation" ) ;
4956
+ } ) ;
4957
+ } ) ;
4886
4958
} ) ;
0 commit comments