1- import { assert , expect } from '@open-wc/testing'
1+ import { assert } from '@open-wc/testing'
22import '../src/index.ts'
33
44describe ( 'tab-container' , function ( ) {
@@ -21,6 +21,30 @@ describe('tab-container', function () {
2121 } )
2222 } )
2323
24+ describe ( 'events' , function ( ) {
25+ it ( 'has an onTabContainerChange property for the change event' , function ( ) {
26+ const el = document . createElement ( 'tab-container' )
27+ let called = false
28+ const listener = ( ) => ( called = true )
29+ el . onTabContainerChange = listener
30+ assert . equal ( el . onTabContainerChange , listener )
31+ assert . equal ( called , false )
32+ el . dispatchEvent ( new Event ( 'tab-container-change' ) )
33+ assert . equal ( called , true )
34+ } )
35+
36+ it ( 'has an onTabContainerChanged property for the changed event' , function ( ) {
37+ const el = document . createElement ( 'tab-container' )
38+ let called = false
39+ const listener = ( ) => ( called = true )
40+ el . onTabContainerChanged = listener
41+ assert . equal ( el . onTabContainerChanged , listener )
42+ assert . equal ( called , false )
43+ el . dispatchEvent ( new Event ( 'tab-container-changed' ) )
44+ assert . equal ( called , true )
45+ } )
46+ } )
47+
2448 describe ( 'after tree insertion' , function ( ) {
2549 beforeEach ( function ( ) {
2650 document . body . innerHTML = `
@@ -50,16 +74,9 @@ describe('tab-container', function () {
5074 } )
5175
5276 afterEach ( function ( ) {
53- // Check to make sure we still have accessible markup after the test finishes running.
54- expect ( document . body ) . to . be . accessible ( )
55-
5677 document . body . innerHTML = ''
5778 } )
5879
59- it ( 'has accessible markup' , function ( ) {
60- expect ( document . body ) . to . be . accessible ( )
61- } )
62-
6380 it ( 'click works and `tab-container-changed` event is dispatched' , function ( ) {
6481 tabs [ 1 ] . click ( )
6582 assert . deepStrictEqual ( tabs . map ( isSelected ) , [ false , true , false ] , 'Second tab is selected' )
@@ -71,7 +88,12 @@ describe('tab-container', function () {
7188 'events fired in right order' ,
7289 )
7390 assert . deepStrictEqual (
74- events . map ( e => e . detail . relatedTarget ) ,
91+ events . map ( e => e . tab ) ,
92+ [ tabs [ 1 ] , tabs [ 1 ] ] ,
93+ 'change events point to second tab' ,
94+ )
95+ assert . deepStrictEqual (
96+ events . map ( e => e . panel ) ,
7597 [ panels [ 1 ] , panels [ 1 ] ] ,
7698 'change events point to second panel' ,
7799 )
@@ -184,7 +206,12 @@ describe('tab-container', function () {
184206 'events fired in right order' ,
185207 )
186208 assert . deepStrictEqual (
187- events . map ( e => e . detail . relatedTarget ) ,
209+ events . map ( e => e . tab ) ,
210+ [ tabs [ 1 ] , tabs [ 1 ] ] ,
211+ 'change events point to second tab' ,
212+ )
213+ assert . deepStrictEqual (
214+ events . map ( e => e . panel ) ,
188215 [ panels [ 1 ] , panels [ 1 ] ] ,
189216 'change events point to second panel' ,
190217 )
@@ -240,16 +267,9 @@ describe('tab-container', function () {
240267 } )
241268
242269 afterEach ( function ( ) {
243- // Check to make sure we still have accessible markup after the test finishes running.
244- expect ( document . body ) . to . be . accessible ( )
245-
246270 document . body . innerHTML = ''
247271 } )
248272
249- it ( 'has accessible markup' , function ( ) {
250- expect ( document . body ) . to . be . accessible ( )
251- } )
252-
253273 it ( 'only switches closest tab-containers on click' , ( ) => {
254274 assert . deepStrictEqual ( tabs . map ( isSelected ) , [ true , false , false ] )
255275 assert . deepStrictEqual ( nestedTabs . map ( isSelected ) , [ true , false ] )
@@ -325,16 +345,9 @@ describe('tab-container', function () {
325345 } )
326346
327347 afterEach ( function ( ) {
328- // Check to make sure we still have accessible markup after the test finishes running.
329- expect ( document . body ) . to . be . accessible ( )
330-
331348 document . body . innerHTML = ''
332349 } )
333350
334- it ( 'has accessible markup' , function ( ) {
335- expect ( document . body ) . to . be . accessible ( )
336- } )
337-
338351 it ( 'up and down keyboard shortcuts work and `tab-container-changed` events are dispatched' , ( ) => {
339352 tabs [ 0 ] . dispatchEvent ( new KeyboardEvent ( 'keydown' , { code : 'ArrowUp' , bubbles : true } ) )
340353 assert . deepStrictEqual ( tabs . map ( isSelected ) , [ false , false , true ] , 'Third tab is selected' )
@@ -347,7 +360,12 @@ describe('tab-container', function () {
347360 'events fired in right order' ,
348361 )
349362 assert . deepStrictEqual (
350- events . map ( e => e . detail . relatedTarget ) ,
363+ events . map ( e => e . tab ) ,
364+ [ tabs [ 2 ] , tabs [ 2 ] ] ,
365+ 'change events point to second tab' ,
366+ )
367+ assert . deepStrictEqual (
368+ events . map ( e => e . panel ) ,
351369 [ panels [ 2 ] , panels [ 2 ] ] ,
352370 'change events point to second panel' ,
353371 )
@@ -364,7 +382,12 @@ describe('tab-container', function () {
364382 'events fired in right order' ,
365383 )
366384 assert . deepStrictEqual (
367- events . map ( e => e . detail . relatedTarget ) ,
385+ events . map ( e => e . tab ) ,
386+ [ tabs [ 0 ] , tabs [ 0 ] ] ,
387+ 'change events point to first tab' ,
388+ )
389+ assert . deepStrictEqual (
390+ events . map ( e => e . panel ) ,
368391 [ panels [ 0 ] , panels [ 0 ] ] ,
369392 'change events point to first panel' ,
370393 )
@@ -381,7 +404,12 @@ describe('tab-container', function () {
381404 'events fired in right order' ,
382405 )
383406 assert . deepStrictEqual (
384- events . map ( e => e . detail . relatedTarget ) ,
407+ events . map ( e => e . tab ) ,
408+ [ tabs [ 1 ] , tabs [ 1 ] ] ,
409+ 'change events point to second tab' ,
410+ )
411+ assert . deepStrictEqual (
412+ events . map ( e => e . panel ) ,
385413 [ panels [ 1 ] , panels [ 1 ] ] ,
386414 'change events point to second panel' ,
387415 )
@@ -398,7 +426,12 @@ describe('tab-container', function () {
398426 'events fired in right order' ,
399427 )
400428 assert . deepStrictEqual (
401- events . map ( e => e . detail . relatedTarget ) ,
429+ events . map ( e => e . tab ) ,
430+ [ tabs [ 2 ] , tabs [ 2 ] ] ,
431+ 'change events point to third tab' ,
432+ )
433+ assert . deepStrictEqual (
434+ events . map ( e => e . panel ) ,
402435 [ panels [ 2 ] , panels [ 2 ] ] ,
403436 'change events point to third panel' ,
404437 )
@@ -416,7 +449,12 @@ describe('tab-container', function () {
416449 'events fired in right order' ,
417450 )
418451 assert . deepStrictEqual (
419- events . map ( e => e . detail . relatedTarget ) ,
452+ events . map ( e => e . tab ) ,
453+ [ tabs [ 2 ] , tabs [ 2 ] ] ,
454+ 'change events point to third tab' ,
455+ )
456+ assert . deepStrictEqual (
457+ events . map ( e => e . panel ) ,
420458 [ panels [ 2 ] , panels [ 2 ] ] ,
421459 'change events point to third panel' ,
422460 )
@@ -433,7 +471,12 @@ describe('tab-container', function () {
433471 'events fired in right order' ,
434472 )
435473 assert . deepStrictEqual (
436- events . map ( e => e . detail . relatedTarget ) ,
474+ events . map ( e => e . tab ) ,
475+ [ tabs [ 0 ] , tabs [ 0 ] ] ,
476+ 'change events point to first tab' ,
477+ )
478+ assert . deepStrictEqual (
479+ events . map ( e => e . panel ) ,
437480 [ panels [ 0 ] , panels [ 0 ] ] ,
438481 'change events point to first panel' ,
439482 )
@@ -450,7 +493,12 @@ describe('tab-container', function () {
450493 'events fired in right order' ,
451494 )
452495 assert . deepStrictEqual (
453- events . map ( e => e . detail . relatedTarget ) ,
496+ events . map ( e => e . tab ) ,
497+ [ tabs [ 1 ] , tabs [ 1 ] ] ,
498+ 'change events point to second tab' ,
499+ )
500+ assert . deepStrictEqual (
501+ events . map ( e => e . panel ) ,
454502 [ panels [ 1 ] , panels [ 1 ] ] ,
455503 'change events point to second panel' ,
456504 )
@@ -467,7 +515,12 @@ describe('tab-container', function () {
467515 'events fired in right order' ,
468516 )
469517 assert . deepStrictEqual (
470- events . map ( e => e . detail . relatedTarget ) ,
518+ events . map ( e => e . tab ) ,
519+ [ tabs [ 2 ] , tabs [ 2 ] ] ,
520+ 'change events point to third tab' ,
521+ )
522+ assert . deepStrictEqual (
523+ events . map ( e => e . panel ) ,
471524 [ panels [ 2 ] , panels [ 2 ] ] ,
472525 'change events point to third panel' ,
473526 )
0 commit comments