]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
test: add test with lazy loaded beforeRouteLeave
authorEduardo San Martin Morote <posva13@gmail.com>
Thu, 2 May 2019 13:04:35 +0000 (15:04 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Thu, 2 May 2019 13:04:35 +0000 (15:04 +0200)
__tests__/guards/component-beforeRouteLeave.spec.js

index ad25fdebf6288546fe14b21b1b6546f88bbe6473..caab1a6ea3bee17c6ef7662fb4035a5048393935 100644 (file)
@@ -57,6 +57,25 @@ describe('beforeRouteLeave', () => {
         expect(beforeRouteLeave).toHaveBeenCalledTimes(1)
       })
 
+      it('works when a lazy loaded component', async () => {
+        const router = createRouter({
+          routes: [
+            ...routes,
+            {
+              path: '/lazy',
+              component: () => Promise.resolve({ ...Foo, beforeRouteLeave }),
+            },
+          ],
+        })
+        beforeRouteLeave.mockImplementationOnce((to, from, next) => {
+          next()
+        })
+        await router.push('/lazy')
+        expect(beforeRouteLeave).not.toHaveBeenCalled()
+        await router[navigationMethod]('/foo')
+        expect(beforeRouteLeave).toHaveBeenCalledTimes(1)
+      })
+
       it('can cancel navigation', async () => {
         const router = createRouter({ routes })
         beforeRouteLeave.mockImplementationOnce(async (to, from, next) => {