@@ -293,6 +293,89 @@ describe('RouterView', () => {
293
293
expect ( wrapper . html ( ) ) . toBe ( `<div>id:2;other:page</div>` )
294
294
} )
295
295
296
+ describe ( 'warnings' , ( ) => {
297
+ it ( 'does not warn RouterView is wrapped' , async ( ) => {
298
+ const route = createMockedRoute ( routes . root )
299
+ const wrapper = await mount (
300
+ {
301
+ template : `
302
+ <div>
303
+ <router-view/>
304
+ </div>
305
+ ` ,
306
+ } ,
307
+ {
308
+ propsData : { } ,
309
+ provide : route . provides ,
310
+ components : { RouterView } ,
311
+ }
312
+ )
313
+ expect ( wrapper . html ( ) ) . toBe ( `<div><div>Home</div></div>` )
314
+ expect ( 'can no longer be used directly inside' ) . not . toHaveBeenWarned ( )
315
+ } )
316
+ it ( 'warns if KeepAlive wraps a RouterView' , async ( ) => {
317
+ const route = createMockedRoute ( routes . root )
318
+ const wrapper = await mount (
319
+ {
320
+ template : `
321
+ <keep-alive>
322
+ <router-view/>
323
+ </keep-alive>
324
+ ` ,
325
+ } ,
326
+ {
327
+ propsData : { } ,
328
+ provide : route . provides ,
329
+ components : { RouterView } ,
330
+ }
331
+ )
332
+ expect ( wrapper . html ( ) ) . toBe ( `<div>Home</div>` )
333
+ expect ( 'can no longer be used directly inside' ) . toHaveBeenWarned ( )
334
+ } )
335
+
336
+ it ( 'warns if KeepAlive and Transition wrap a RouterView' , async ( ) => {
337
+ const route = createMockedRoute ( routes . root )
338
+ const wrapper = await mount (
339
+ {
340
+ template : `
341
+ <transition>
342
+ <keep-alive>
343
+ <router-view/>
344
+ </keep-alive>
345
+ </transition>
346
+ ` ,
347
+ } ,
348
+ {
349
+ propsData : { } ,
350
+ provide : route . provides ,
351
+ components : { RouterView } ,
352
+ }
353
+ )
354
+ expect ( wrapper . html ( ) ) . toBe ( `<div>Home</div>` )
355
+ expect ( 'can no longer be used directly inside' ) . toHaveBeenWarned ( )
356
+ } )
357
+
358
+ it ( 'warns if Transition wraps a RouterView' , async ( ) => {
359
+ const route = createMockedRoute ( routes . root )
360
+ const wrapper = await mount (
361
+ {
362
+ template : `
363
+ <transition>
364
+ <router-view/>
365
+ </transition>
366
+ ` ,
367
+ } ,
368
+ {
369
+ propsData : { } ,
370
+ provide : route . provides ,
371
+ components : { RouterView } ,
372
+ }
373
+ )
374
+ expect ( wrapper . html ( ) ) . toBe ( `<div>Home</div>` )
375
+ expect ( 'can no longer be used directly inside' ) . toHaveBeenWarned ( )
376
+ } )
377
+ } )
378
+
296
379
describe ( 'KeepAlive' , ( ) => {
297
380
async function factory (
298
381
initialRoute : RouteLocationNormalizedLoose ,
0 commit comments