File tree Expand file tree Collapse file tree 1 file changed +114
-0
lines changed Expand file tree Collapse file tree 1 file changed +114
-0
lines changed Original file line number Diff line number Diff line change @@ -1277,6 +1277,120 @@ describe('SSR: renderToString', () => {
1277
1277
done ( )
1278
1278
} )
1279
1279
} )
1280
+
1281
+ it ( 'should support ssrPrefetch option' , done => {
1282
+ renderVmWithOptions ( {
1283
+ template : `
1284
+ <div>{{ count }}</div>
1285
+ ` ,
1286
+ data : {
1287
+ count : 0
1288
+ } ,
1289
+ ssrPrefetch ( ) {
1290
+ return new Promise ( ( resolve ) => {
1291
+ setTimeout ( ( ) => {
1292
+ this . count = 42
1293
+ resolve ( )
1294
+ } , 1 )
1295
+ } )
1296
+ }
1297
+ } , result => {
1298
+ expect ( result ) . toContain ( '<div data-server-rendered="true">42</div>' )
1299
+ done ( )
1300
+ } )
1301
+ } )
1302
+
1303
+ it ( 'should support ssrPrefetch option (nested)' , done => {
1304
+ renderVmWithOptions ( {
1305
+ template : `
1306
+ <div>
1307
+ <span>{{ count }}</span>
1308
+ <nested-prefetch></nested-prefetch>
1309
+ </div>
1310
+ ` ,
1311
+ data : {
1312
+ count : 0
1313
+ } ,
1314
+ ssrPrefetch ( ) {
1315
+ return new Promise ( ( resolve ) => {
1316
+ setTimeout ( ( ) => {
1317
+ this . count = 42
1318
+ resolve ( )
1319
+ } , 1 )
1320
+ } )
1321
+ } ,
1322
+ components : {
1323
+ nestedPrefetch : {
1324
+ template : `
1325
+ <div>{{ message }}</div>
1326
+ ` ,
1327
+ data ( ) {
1328
+ return {
1329
+ message : ''
1330
+ }
1331
+ } ,
1332
+ ssrPrefetch ( ) {
1333
+ return new Promise ( ( resolve ) => {
1334
+ setTimeout ( ( ) => {
1335
+ this . message = 'vue.js'
1336
+ resolve ( )
1337
+ } , 1 )
1338
+ } )
1339
+ }
1340
+ }
1341
+ }
1342
+ } , result => {
1343
+ expect ( result ) . toContain ( '<div data-server-rendered="true"><span>42</span> <div>vue.js</div></div>' )
1344
+ done ( )
1345
+ } )
1346
+ } )
1347
+
1348
+ it ( 'should support ssrPrefetch option (nested async)' , done => {
1349
+ renderVmWithOptions ( {
1350
+ template : `
1351
+ <div>
1352
+ <span>{{ count }}</span>
1353
+ <nested-prefetch></nested-prefetch>
1354
+ </div>
1355
+ ` ,
1356
+ data : {
1357
+ count : 0
1358
+ } ,
1359
+ ssrPrefetch ( ) {
1360
+ return new Promise ( ( resolve ) => {
1361
+ setTimeout ( ( ) => {
1362
+ this . count = 42
1363
+ resolve ( )
1364
+ } , 1 )
1365
+ } )
1366
+ } ,
1367
+ components : {
1368
+ nestedPrefetch ( resolve ) {
1369
+ resolve ( {
1370
+ template : `
1371
+ <div>{{ message }}</div>
1372
+ ` ,
1373
+ data ( ) {
1374
+ return {
1375
+ message : ''
1376
+ }
1377
+ } ,
1378
+ ssrPrefetch ( ) {
1379
+ return new Promise ( ( resolve ) => {
1380
+ setTimeout ( ( ) => {
1381
+ this . message = 'vue.js'
1382
+ resolve ( )
1383
+ } , 1 )
1384
+ } )
1385
+ }
1386
+ } )
1387
+ }
1388
+ }
1389
+ } , result => {
1390
+ expect ( result ) . toContain ( '<div data-server-rendered="true"><span>42</span> <div>vue.js</div></div>' )
1391
+ done ( )
1392
+ } )
1393
+ } )
1280
1394
} )
1281
1395
1282
1396
function renderVmWithOptions ( options , cb ) {
You can’t perform that action at this time.
0 commit comments