]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
test(e2e): avoid wrong navigation
authorEduardo San Martin Morote <posva13@gmail.com>
Mon, 1 Mar 2021 17:38:51 +0000 (18:38 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Mon, 1 Mar 2021 17:38:51 +0000 (18:38 +0100)
e2e/modal/index.ts

index 1e35e35291e641606da829e579a7e9e132df427b..0ed4a90cbecd4f46de0caa3e14f58be76bb6c154 100644 (file)
@@ -146,7 +146,12 @@ const router = createRouter({
       ],
     },
     { path: '/about', component: About },
-    { path: '/users/:id', props: true, name: 'user', component: UserDetails },
+    {
+      path: '/users/:id',
+      props: true,
+      name: 'user',
+      component: UserDetails,
+    },
   ],
 })
 
@@ -162,6 +167,16 @@ router.beforeEach((to, from, next) => {
   next()
 })
 
+// avoid navigating to non existent users
+router.beforeEach(to => {
+  if (to.name !== 'user') return
+
+  const { id } = to.params
+  return (
+    typeof id === 'string' && !Number.isNaN(Number(id)) && !!users[Number(id)]
+  )
+})
+
 const app = createApp({
   setup() {
     const route = useRoute()
@@ -188,3 +203,5 @@ const app = createApp({
 app.use(router)
 
 window.vm = app.mount('#app')
+// @ts-ignore
+window.router = router