@@ -669,4 +669,53 @@ describe('tab-container', function () {
669
669
)
670
670
} )
671
671
} )
672
+ describe ( 'with custom tablist-tab-wrapper' , function ( ) {
673
+ beforeEach ( function ( ) {
674
+ document . body . innerHTML = `
675
+ <tab-container>
676
+ <div slot="tablist-tab-wrapper">
677
+ <div role="tablist">
678
+ <button type="button" role="tab">Tab one</button>
679
+ <button type="button" role="tab" aria-selected="true">Tab two</button>
680
+ <button type="button" role="tab">Tab three</button>
681
+ </div>
682
+ </div>
683
+ <div role="tabpanel" hidden>
684
+ Panel 1
685
+ </div>
686
+ <div role="tabpanel">
687
+ Panel 2
688
+ </div>
689
+ <div role="tabpanel" hidden data-tab-container-no-tabstop>
690
+ Panel 3
691
+ </div>
692
+ </tab-container>
693
+ `
694
+ tabs = Array . from ( document . querySelectorAll ( 'button' ) )
695
+ panels = Array . from ( document . querySelectorAll ( '[role="tabpanel"]' ) )
696
+ } )
697
+
698
+ afterEach ( function ( ) {
699
+ // Check to make sure we still have accessible markup after the test finishes running.
700
+ expect ( document . body ) . to . be . accessible ( )
701
+
702
+ document . body . innerHTML = ''
703
+ } )
704
+
705
+ it ( 'has accessible markup' , function ( ) {
706
+ expect ( document . body ) . to . be . accessible ( )
707
+ } )
708
+
709
+ it ( 'the second tab is still selected' , function ( ) {
710
+ assert . deepStrictEqual ( tabs . map ( isSelected ) , [ false , true , false ] , 'Second tab is selected' )
711
+ assert . deepStrictEqual ( panels . map ( isHidden ) , [ true , false , true ] , 'Second panel is visible' )
712
+ } )
713
+
714
+ it ( 'selects the clicked tab' , function ( ) {
715
+ tabs [ 0 ] . click ( )
716
+
717
+ assert . deepStrictEqual ( tabs . map ( isSelected ) , [ true , false , false ] , 'First tab is selected' )
718
+ assert . deepStrictEqual ( panels . map ( isHidden ) , [ false , true , true ] , 'First panel is visible' )
719
+ } )
720
+ } )
672
721
} )
0 commit comments