@@ -4883,4 +4883,76 @@ describe("DatePicker", () => {
48834883 expect ( eventObject . target ?. value ) . toBe ( inputValue ) ;
48844884 } ) ;
48854885 } ) ;
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+ } ) ;
48864958} ) ;
0 commit comments