]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
test(view): unit test keep alive and suspense
authorEduardo San Martin Morote <posva13@gmail.com>
Mon, 1 Mar 2021 09:33:30 +0000 (10:33 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Mon, 1 Mar 2021 09:33:30 +0000 (10:33 +0100)
__tests__/RouterView.spec.ts

index f1ae2c98b5ba9f58491188c258cbb7656b6ddc0f..bfb1eda4a69bc2a7eced3056c55a884243548254 100644 (file)
@@ -463,8 +463,40 @@ describe('RouterView', () => {
       return { route, wrapper }
     }
 
-    // TODO: maybe migrating to VTU 2 to handle this properly
-    it.skip('works', async () => {
+    it('works', async () => {
+      const { route, wrapper } = await factory(routes.root)
+      expect(wrapper.html()).toMatchInlineSnapshot(`"<div>Home</div>"`)
+      await route.set(routes.foo)
+      expect(wrapper.html()).toMatchInlineSnapshot(`"<div>Foo</div>"`)
+    })
+  })
+
+  describe('Suspense', () => {
+    async function factory(
+      initialRoute: RouteLocationNormalizedLoose,
+      propsData: any = {}
+    ) {
+      const route = createMockedRoute(initialRoute)
+      const wrapper = await mount(RouterView as any, {
+        propsData,
+        global: {
+          provide: route.provides,
+          components: { RouterView },
+        },
+        slots: {
+          default: `
+          <template #default="{ Component }">
+            <Suspense>
+              <component :is="Component"/>
+            </Suspense>
+          </template>`,
+        },
+      })
+
+      return { route, wrapper }
+    }
+
+    it('works', async () => {
       const { route, wrapper } = await factory(routes.root)
       expect(wrapper.html()).toMatchInlineSnapshot(`"<div>Home</div>"`)
       await route.set(routes.foo)