]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
test(router-view): test v-slot
authorEduardo San Martin Morote <posva13@gmail.com>
Fri, 24 Jul 2020 08:42:22 +0000 (10:42 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Fri, 24 Jul 2020 08:42:22 +0000 (10:42 +0200)
__tests__/RouterView.spec.ts

index 2f2ba4c310dc9ef0642b8d938abf51ec355e4aaa..812d5c245fadb12c88a00625e9d26d9bdfdd8ad6 100644 (file)
@@ -29,7 +29,7 @@ const props = { default: false }
 const routes = createRoutes({
   root: {
     fullPath: '/',
-    name: undefined,
+    name: 'home',
     path: '/',
     query: {},
     params: {},
@@ -330,6 +330,7 @@ describe('RouterView', () => {
       expect(wrapper.html()).toBe(`<div><div>Home</div></div>`)
       expect('can no longer be used directly inside').not.toHaveBeenWarned()
     })
+
     it('warns if KeepAlive wraps a RouterView', async () => {
       const route = createMockedRoute(routes.root)
       const wrapper = await mount(
@@ -393,6 +394,33 @@ describe('RouterView', () => {
     })
   })
 
+  describe('v-slot', () => {
+    async function factory(
+      initialRoute: RouteLocationNormalizedLoose,
+      propsData: any = {}
+    ) {
+      const route = createMockedRoute(initialRoute)
+      const wrapper = await mount(RouterView, {
+        propsData,
+        provide: route.provides,
+        components: { RouterView },
+        slots: {
+          default: `
+          <span>{{ route.name }}</span>
+          <component :is="Component"/>
+        `,
+        },
+      })
+
+      return { route, wrapper }
+    }
+
+    it('passes a Component and route', async () => {
+      const { wrapper } = await factory(routes.root)
+      expect(wrapper.html()).toBe(`<span>home</span><div>Home</div>`)
+    })
+  })
+
   describe('KeepAlive', () => {
     async function factory(
       initialRoute: RouteLocationNormalizedLoose,