@@ -280,11 +280,40 @@ describe('web components', () => {
280280 ) ;
281281 } ) ;
282282
283+ it ( 'supports controlling light DOM with other custom elements' , ( ) => {
284+ function Parent ( { children } ) {
285+ return (
286+ < Fragment >
287+ < h1 > Light DOM Children</ h1 >
288+ < div > { children } </ div >
289+ </ Fragment >
290+ ) ;
291+ }
292+
293+ function Child ( ) {
294+ return < p > Child</ p > ;
295+ }
296+
297+ registerElement ( Parent , 'light-dom-children-parent' , [ ] ) ;
298+ registerElement ( Child , 'light-dom-children-child' , [ ] ) ;
299+
300+ const parent = document . createElement ( 'light-dom-children-parent' ) ;
301+ const child = document . createElement ( 'light-dom-children-child' ) ;
302+
303+ parent . appendChild ( child ) ;
304+ root . appendChild ( parent ) ;
305+
306+ assert . equal (
307+ document . querySelector ( 'light-dom-children-parent' ) . innerHTML ,
308+ '<h1>Light DOM Children</h1><div><light-dom-children-child><p>Child</p></light-dom-children-child></div>'
309+ ) ;
310+ } ) ;
311+
283312 it ( 'supports controlling shadow DOM children' , ( ) => {
284313 function ShadowDomChildren ( { children } ) {
285314 return (
286315 < Fragment >
287- < h1 > Light DOM Children</ h1 >
316+ < h1 > Shadow DOM Children</ h1 >
288317 < div > { children } </ div >
289318 </ Fragment >
290319 ) ;
@@ -298,8 +327,45 @@ describe('web components', () => {
298327
299328 assert . equal (
300329 document . querySelector ( 'shadow-dom-children' ) . shadowRoot . innerHTML ,
301- '<h1>Light DOM Children</h1><div><slot><p>Child 1</p><p>Child 2</p></slot></div>'
330+ '<h1>Shadow DOM Children</h1><div><slot><p>Child 1</p><p>Child 2</p></slot></div>'
331+ ) ;
332+ } ) ;
333+
334+ it ( 'supports controlling shadow DOM with other custom elements' , ( ) => {
335+ function Parent ( { children } ) {
336+ return (
337+ < Fragment >
338+ < h1 > Shadow DOM Children</ h1 >
339+ < div > { children } </ div >
340+ </ Fragment >
341+ ) ;
342+ }
343+
344+ function Child ( ) {
345+ return < p > Child</ p > ;
346+ }
347+
348+ registerElement ( Parent , 'shadow-dom-children-parent' , [ ] , {
349+ shadow : true ,
350+ } ) ;
351+ registerElement ( Child , 'shadow-dom-children-child' , [ ] , {
352+ shadow : true ,
353+ } ) ;
354+
355+ const parent = document . createElement ( 'shadow-dom-children-parent' ) ;
356+ const child = document . createElement ( 'shadow-dom-children-child' ) ;
357+
358+ parent . appendChild ( child ) ;
359+ root . appendChild ( parent ) ;
360+
361+ const getShadowHTML = ( selector ) =>
362+ document . querySelector ( selector ) . shadowRoot . innerHTML ;
363+
364+ assert . equal (
365+ getShadowHTML ( 'shadow-dom-children-parent' ) ,
366+ '<h1>Shadow DOM Children</h1><div><slot><shadow-dom-children-child></shadow-dom-children-child></slot></div>'
302367 ) ;
368+ assert . equal ( getShadowHTML ( 'shadow-dom-children-child' ) , '<p>Child</p>' ) ;
303369 } ) ;
304370 } ) ;
305371
0 commit comments