diff --git a/lib/app/router.js b/lib/app/router.js index ecf8045a3a..3cc0a31319 100644 --- a/lib/app/router.js +++ b/lib/app/router.js @@ -12,6 +12,7 @@ import Router from 'vue-router' res += (route.redirect) ? ',\n\t' + tab + 'redirect: ' + JSON.stringify(route.redirect) : '' res += (route.meta) ? ',\n\t' + tab + 'meta: ' + JSON.stringify(route.meta) : '' res += (route.name) ? ',\n\t' + tab + 'name: ' + JSON.stringify(route.name) : '' + res += (route.beforeEnter) ? ',\n\t' + tab + 'beforeEnter: ' + serialize(route.beforeEnter) : '' res += (route.children) ? ',\n\t' + tab + 'children: [\n' + recursiveRoutes(routes[i].children, tab + '\t\t', components) + '\n\t' + tab + ']' : '' res += '\n' + tab + '}' + (i + 1 === routes.length ? '' : ',\n') }) diff --git a/test/fixtures/basic/nuxt.config.js b/test/fixtures/basic/nuxt.config.js index f4eb543109..2819c10995 100644 --- a/test/fixtures/basic/nuxt.config.js +++ b/test/fixtures/basic/nuxt.config.js @@ -6,6 +6,15 @@ export default { maxAge: ((60 * 60 * 24 * 365) * 2) } }, + router: { + extendRoutes(routes, resolve) { + return [{ + path: '/before-enter', + name: 'before-enter', + beforeEnter: (to, from, next) => { next('/') } + }, ...routes] + } + }, generate: { routes: [ // TODO: generate with {build: false} does not scans pages! diff --git a/test/unit/basic.ssr.test.js b/test/unit/basic.ssr.test.js index 46518276c8..e56a33de73 100644 --- a/test/unit/basic.ssr.test.js +++ b/test/unit/basic.ssr.test.js @@ -101,6 +101,11 @@ describe('basic ssr', () => { expect(html.includes('

I am valid

')).toBe(true) }) + test('/before-enter', async () => { + const { html } = await nuxt.renderRoute('/before-enter') + expect(html.includes('

Index page

')).toBe(true) + }) + test('/redirect', async () => { const { html, redirected } = await nuxt.renderRoute('/redirect') expect(html.includes('
')).toBe(true)