@@ -1212,7 +1212,7 @@ describe('defineCustomElement', () => {
1212
1212
app . mount ( container )
1213
1213
expect ( container . innerHTML ) . toBe (
1214
1214
`<ce-shadow-root-false-optimized data-v-app="">` +
1215
- `<div>false</div><!--v-if-->` +
1215
+ `<div>false</div><!--v-if--><!--v-if--> ` +
1216
1216
`</ce-shadow-root-false-optimized>` ,
1217
1217
)
1218
1218
@@ -1228,20 +1228,20 @@ describe('defineCustomElement', () => {
1228
1228
await nextTick ( )
1229
1229
expect ( container . innerHTML ) . toBe (
1230
1230
`<ce-shadow-root-false-optimized data-v-app="">` +
1231
- `<div>false</div><!--v-if-->` +
1231
+ `<div>false</div><!--v-if--><!--v-if--> ` +
1232
1232
`</ce-shadow-root-false-optimized>` ,
1233
1233
)
1234
1234
1235
1235
click ( )
1236
1236
await nextTick ( )
1237
1237
expect ( container . innerHTML ) . toBe (
1238
1238
`<ce-shadow-root-false-optimized data-v-app="" is-shown="">` +
1239
- `<div><div>true</div><div>hi</div></div>` +
1239
+ `<!--v-if-->< div><div>true</div><div>hi</div></div>` +
1240
1240
`</ce-shadow-root-false-optimized>` ,
1241
1241
)
1242
1242
} )
1243
1243
1244
- test . todo ( 'update slotted v-if nodes w/ shadowRoot false' , async ( ) => {
1244
+ test ( 'update slotted v-if nodes w/ shadowRoot false' , async ( ) => {
1245
1245
const E = defineCustomElement (
1246
1246
defineComponent ( {
1247
1247
props : {
@@ -1298,25 +1298,33 @@ describe('defineCustomElement', () => {
1298
1298
const app = createApp ( App )
1299
1299
app . mount ( container )
1300
1300
expect ( container . innerHTML ) . toBe (
1301
- `<ce-shadow-root-false data-v-app=""><div>false</div><!--v-if--></ce-shadow-root-false>` ,
1301
+ `<ce-shadow-root-false data-v-app="">` +
1302
+ `<div>false</div><!--v-if--><!--v-if-->` +
1303
+ `</ce-shadow-root-false>` ,
1302
1304
)
1303
1305
1304
1306
click ( )
1305
1307
await nextTick ( )
1306
1308
expect ( container . innerHTML ) . toBe (
1307
- `<ce-shadow-root-false data-v-app="" is-shown=""><div><div>true</div><!--v-if--></div></ce-shadow-root-false>` ,
1309
+ `<ce-shadow-root-false data-v-app="" is-shown="">` +
1310
+ `<div><div>true</div><!--v-if--></div>` +
1311
+ `</ce-shadow-root-false>` ,
1308
1312
)
1309
1313
1310
1314
click ( )
1311
1315
await nextTick ( )
1312
1316
expect ( container . innerHTML ) . toBe (
1313
- `<ce-shadow-root-false data-v-app=""><div>false</div><!--v-if--></ce-shadow-root-false>` ,
1317
+ `<ce-shadow-root-false data-v-app="">` +
1318
+ `<div>false</div><!--v-if--><!--v-if-->` +
1319
+ `</ce-shadow-root-false>` ,
1314
1320
)
1315
1321
1316
1322
click ( )
1317
1323
await nextTick ( )
1318
1324
expect ( container . innerHTML ) . toBe (
1319
- `<ce-shadow-root-false data-v-app="" is-shown=""><div><div>true</div><div>hi</div></div></ce-shadow-root-false>` ,
1325
+ `<ce-shadow-root-false data-v-app="" is-shown="">` +
1326
+ `<!--v-if--><div><div>true</div><div>hi</div></div>` +
1327
+ `</ce-shadow-root-false>` ,
1320
1328
)
1321
1329
} )
1322
1330
@@ -1389,7 +1397,7 @@ describe('defineCustomElement', () => {
1389
1397
app . mount ( container )
1390
1398
expect ( container . innerHTML ) . toBe (
1391
1399
`<ce-with-fallback-shadow-root-false-optimized data-v-app="">` +
1392
- `fallback` +
1400
+ `<!--v-if--> fallback` +
1393
1401
`</ce-with-fallback-shadow-root-false-optimized>` ,
1394
1402
)
1395
1403
@@ -1405,90 +1413,87 @@ describe('defineCustomElement', () => {
1405
1413
await nextTick ( )
1406
1414
expect ( container . innerHTML ) . toBe (
1407
1415
`<ce-with-fallback-shadow-root-false-optimized data-v-app="">` +
1408
- `fallback <!--v-if-->` +
1416
+ `<!--v-if-->fallback ` +
1409
1417
`</ce-with-fallback-shadow-root-false-optimized>` ,
1410
1418
)
1411
1419
} )
1412
1420
1413
- test . todo (
1414
- 'switch between slotted and fallback nodes w/ shadowRoot false' ,
1415
- async ( ) => {
1416
- const E = defineCustomElement (
1417
- defineComponent ( {
1418
- render ( ) {
1419
- return renderSlot ( this . $slots , 'foo' , { } , ( ) => [
1420
- createTextVNode ( 'fallback' ) ,
1421
- ] )
1422
- } ,
1423
- } ) ,
1424
- { shadowRoot : false } ,
1425
- )
1426
- customElements . define ( 'ce-with-fallback-shadow-root-false' , E )
1427
-
1428
- const Comp = defineComponent ( {
1421
+ test ( 'switch between slotted and fallback nodes w/ shadowRoot false' , async ( ) => {
1422
+ const E = defineCustomElement (
1423
+ defineComponent ( {
1429
1424
render ( ) {
1430
- return h ( 'ce-with-fallback-shadow-root-false' , null , [
1431
- this . $slots . foo
1432
- ? h ( 'div' , { key : 0 , slot : 'foo' } , [
1433
- renderSlot ( this . $slots , 'foo' ) ,
1434
- ] )
1435
- : createCommentVNode ( 'v-if' , true ) ,
1436
- renderSlot ( this . $slots , 'default' ) ,
1425
+ return renderSlot ( this . $slots , 'foo' , { } , ( ) => [
1426
+ createTextVNode ( 'fallback' ) ,
1437
1427
] )
1438
1428
} ,
1439
- } )
1429
+ } ) ,
1430
+ { shadowRoot : false } ,
1431
+ )
1432
+ customElements . define ( 'ce-with-fallback-shadow-root-false' , E )
1440
1433
1441
- const isShown = ref ( false )
1442
- const App = defineComponent ( {
1443
- components : { Comp } ,
1444
- render ( ) {
1445
- return h (
1446
- Comp ,
1447
- null ,
1448
- createSlots (
1449
- { _ : 2 /* DYNAMIC */ } as any ,
1450
- [
1451
- isShown . value
1452
- ? {
1453
- name : 'foo' ,
1454
- fn : withCtx ( ( ) => [ createTextVNode ( 'foo' ) ] ) ,
1455
- key : '0' ,
1456
- }
1457
- : undefined ,
1458
- ] as any ,
1459
- ) ,
1460
- )
1461
- } ,
1462
- } )
1434
+ const Comp = defineComponent ( {
1435
+ render ( ) {
1436
+ return h ( 'ce-with-fallback-shadow-root-false' , null , [
1437
+ this . $slots . foo
1438
+ ? h ( 'div' , { key : 0 , slot : 'foo' } , [
1439
+ renderSlot ( this . $slots , 'foo' ) ,
1440
+ ] )
1441
+ : createCommentVNode ( 'v-if' , true ) ,
1442
+ renderSlot ( this . $slots , 'default' ) ,
1443
+ ] )
1444
+ } ,
1445
+ } )
1463
1446
1464
- const container = document . createElement ( 'div' )
1465
- document . body . appendChild ( container )
1466
-
1467
- const app = createApp ( App )
1468
- app . mount ( container )
1469
- expect ( container . innerHTML ) . toBe (
1470
- `<ce-with-fallback-shadow-root-false data-v-app="">` +
1471
- `fallback` +
1472
- `</ce-with-fallback-shadow-root-false>` ,
1473
- )
1474
-
1475
- isShown . value = true
1476
- await nextTick ( )
1477
- expect ( container . innerHTML ) . toBe (
1478
- `<ce-with-fallback-shadow-root-false data-v-app="">` +
1479
- `<div slot="foo">foo</div>` +
1480
- `</ce-with-fallback-shadow-root-false>` ,
1481
- )
1482
-
1483
- isShown . value = false
1484
- await nextTick ( )
1485
- expect ( container . innerHTML ) . toBe (
1486
- `<ce-with-fallback-shadow-root-false data-v-app="">` +
1487
- `fallback<!--v-if-->` +
1488
- `</ce-with-fallback-shadow-root-false>` ,
1489
- )
1490
- } ,
1491
- )
1447
+ const isShown = ref ( false )
1448
+ const App = defineComponent ( {
1449
+ components : { Comp } ,
1450
+ render ( ) {
1451
+ return h (
1452
+ Comp ,
1453
+ null ,
1454
+ createSlots (
1455
+ { _ : 2 /* DYNAMIC */ } as any ,
1456
+ [
1457
+ isShown . value
1458
+ ? {
1459
+ name : 'foo' ,
1460
+ fn : withCtx ( ( ) => [ createTextVNode ( 'foo' ) ] ) ,
1461
+ key : '0' ,
1462
+ }
1463
+ : undefined ,
1464
+ ] as any ,
1465
+ ) ,
1466
+ )
1467
+ } ,
1468
+ } )
1469
+
1470
+ const container = document . createElement ( 'div' )
1471
+ document . body . appendChild ( container )
1472
+
1473
+ const app = createApp ( App )
1474
+ app . mount ( container )
1475
+ expect ( container . innerHTML ) . toBe (
1476
+ `<ce-with-fallback-shadow-root-false data-v-app="">` +
1477
+ `<!--v-if-->fallback` +
1478
+ `</ce-with-fallback-shadow-root-false>` ,
1479
+ )
1480
+
1481
+ isShown . value = true
1482
+ await nextTick ( )
1483
+ expect ( container . innerHTML ) . toBe (
1484
+ `<ce-with-fallback-shadow-root-false data-v-app="">` +
1485
+ `<div slot="foo">foo</div>` +
1486
+ `</ce-with-fallback-shadow-root-false>` ,
1487
+ )
1488
+
1489
+ isShown . value = false
1490
+ await nextTick ( )
1491
+ expect ( container . innerHTML ) . toBe (
1492
+ `<ce-with-fallback-shadow-root-false data-v-app="">` +
1493
+ `<!--v-if-->fallback` +
1494
+ `</ce-with-fallback-shadow-root-false>` ,
1495
+ )
1496
+ } )
1492
1497
} )
1493
1498
1494
1499
describe ( 'helpers' , ( ) => {
0 commit comments