@@ -404,4 +404,47 @@ describe("BlDatepicker", () => {
404404 expect ( element . _calendarEl . _dates ) . to . deep . equal ( [ ] ) ;
405405 } ) ;
406406 } ) ;
407+
408+ describe ( "Disabled State Behavior" , ( ) => {
409+ beforeEach ( async ( ) => {
410+ element = await fixture < BlDatePicker > ( html `
411+ < bl-datepicker type ="single " locale ="en " disabled > </ bl-datepicker > ` ) ;
412+
413+ element . _calendarEl . _dates = [ new Date ( 2024 , 0 , 15 ) ] ;
414+ element . setDatePickerInput ( ) ;
415+ await element . updateComplete ;
416+ } ) ;
417+
418+ it ( "should reflect disabled attribute on host" , async ( ) => {
419+ expect ( element . hasAttribute ( "disabled" ) ) . to . be . true ;
420+ } ) ;
421+
422+ it ( "should apply pointer-events none CSS when disabled" , async ( ) => {
423+ const datepickerContent = element . shadowRoot ?. querySelector ( ".datepicker-content" ) as HTMLElement ;
424+ const styles = window . getComputedStyle ( datepickerContent ) ;
425+
426+ expect ( styles . pointerEvents ) . to . equal ( "none" ) ;
427+ } ) ;
428+
429+ it ( "should have disabled clear button when disabled" , async ( ) => {
430+ const clearButton = element . shadowRoot ?. querySelector ( "bl-button" ) as BlButton ;
431+
432+ expect ( clearButton ) . to . exist ;
433+ expect ( clearButton . disabled ) . to . be . true ;
434+ } ) ;
435+
436+ it ( "should have disabled input when disabled" , async ( ) => {
437+ expect ( element . _inputEl ?. hasAttribute ( "disabled" ) ) . to . be . true ;
438+ } ) ;
439+
440+ it ( "should not open popover on input click when disabled" , async ( ) => {
441+ element . _popoverEl . hide ( ) ;
442+ await element . updateComplete ;
443+
444+ element . _inputEl ?. click ( ) ;
445+ await element . updateComplete ;
446+
447+ expect ( element . _popoverEl . visible ) . to . be . false ;
448+ } ) ;
449+ } ) ;
407450} ) ;
0 commit comments