mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-29 09:02:03 +00:00
fix(nuxt): do not allow catchalls to have child routes (#6257)
This commit is contained in:
parent
5dc864d7bc
commit
96cfe01973
@ -74,7 +74,8 @@ export function generateRoutesFromFiles (files: string[], pagesDir: string): Nux
|
|||||||
route.name += (route.name && '-') + segmentName
|
route.name += (route.name && '-') + segmentName
|
||||||
|
|
||||||
// ex: parent.vue + parent/child.vue
|
// ex: parent.vue + parent/child.vue
|
||||||
const child = parent.find(parentRoute => parentRoute.name === route.name)
|
const child = parent.find(parentRoute => parentRoute.name === route.name && !parentRoute.path.endsWith('(.*)*'))
|
||||||
|
|
||||||
if (child) {
|
if (child) {
|
||||||
parent = child.children
|
parent = child.children
|
||||||
route.path = ''
|
route.path = ''
|
||||||
|
@ -67,6 +67,48 @@ describe('pages:generateRoutesFromFiles', () => {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
description: 'should generate correct id for catchall (order 1)',
|
||||||
|
files: [
|
||||||
|
`${pagesDir}/[...stories].vue`,
|
||||||
|
`${pagesDir}/stories/[id].vue`
|
||||||
|
],
|
||||||
|
output: [
|
||||||
|
{
|
||||||
|
name: 'stories',
|
||||||
|
path: '/:stories(.*)*',
|
||||||
|
file: `${pagesDir}/[...stories].vue`,
|
||||||
|
children: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'stories-id',
|
||||||
|
path: '/stories/:id',
|
||||||
|
file: `${pagesDir}/stories/[id].vue`,
|
||||||
|
children: []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description: 'should generate correct id for catchall (order 2)',
|
||||||
|
files: [
|
||||||
|
`${pagesDir}/stories/[id].vue`,
|
||||||
|
`${pagesDir}/[...stories].vue`
|
||||||
|
],
|
||||||
|
output: [
|
||||||
|
{
|
||||||
|
name: 'stories-id',
|
||||||
|
path: '/stories/:id',
|
||||||
|
file: `${pagesDir}/stories/[id].vue`,
|
||||||
|
children: []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'stories',
|
||||||
|
path: '/:stories(.*)*',
|
||||||
|
file: `${pagesDir}/[...stories].vue`,
|
||||||
|
children: []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
description: 'should generate correct route for snake_case file',
|
description: 'should generate correct route for snake_case file',
|
||||||
files: [
|
files: [
|
||||||
|
Loading…
Reference in New Issue
Block a user