Skip to content

Commit

Permalink
add test
Browse files Browse the repository at this point in the history
  • Loading branch information
huozhi committed Dec 13, 2021
1 parent d3e23e6 commit 668a33d
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 5 deletions.
3 changes: 2 additions & 1 deletion packages/next/server/normalize-page-path.ts
@@ -1,12 +1,13 @@
import { posix } from 'path'
import { isDynamicRoute } from '../shared/lib/router/utils'

export { normalizePathSep, denormalizePagePath } from './denormalize-page-path'

export function normalizePagePath(page: string): string {
// If the page is `/` we need to append `/index`, otherwise the returned directory root will be bundles instead of pages
if (page === '/') {
page = '/index'
} else if (/^\/index(\/|$)$/.test(page)) {
} else if (/^\/index(\/|$)/.test(page) && !isDynamicRoute(page)) {
page = `/index${page}`
}
// Resolve on anything that doesn't start with `/`
Expand Down
53 changes: 49 additions & 4 deletions test/integration/dynamic-routing/test/index.test.js
Expand Up @@ -27,7 +27,7 @@ let buildId
const appDir = join(__dirname, '../')
const buildIdPath = join(appDir, '.next/BUILD_ID')

function runTests(dev) {
function runTests({ dev, serverless }) {
if (dev) {
it('should not have error after pinging WebSocket', async () => {
const browser = await webdriver(appPort, '/')
Expand Down Expand Up @@ -1256,6 +1256,14 @@ function runTests(dev) {
helloworld: 'hello-world',
},
},
{
namedRegex: '^/index/(?<slug>.+?)(?:/)?$',
page: '/index/[...slug]',
regex: normalizeRegEx('^/index/(.+?)(?:/)?$'),
routeKeys: {
slug: 'slug',
},
},
{
namedRegex: `^/on\\-mount/(?<post>[^/]+?)(?:/)?$`,
page: '/on-mount/[post]',
Expand Down Expand Up @@ -1338,6 +1346,43 @@ function runTests(dev) {
],
})
})

if (!serverless) {
it('should output a pages-manifest correctly', async () => {
const manifest = await fs.readJson(
join(appDir, '.next/server/pages-manifest.json')
)

expect(manifest).toEqual({
'/[name]/[comment]': 'pages/[name]/[comment].js',
'/[name]/comments': 'pages/[name]/comments.js',
'/[name]': 'pages/[name].js',
'/[name]/on-mount-redir': 'pages/[name]/on-mount-redir.html',
'/another': 'pages/another.html',
'/b/[123]': 'pages/b/[123].js',
'/blog/[name]/comment/[id]': 'pages/blog/[name]/comment/[id].js',
'/c/[alongparamnameshouldbeallowedeventhoughweird]':
'pages/c/[alongparamnameshouldbeallowedeventhoughweird].js',
'/catchall-dash/[...hello-world]':
'pages/catchall-dash/[...hello-world].html',
'/d/[id]': 'pages/d/[id].html',
'/dash/[hello-world]': 'pages/dash/[hello-world].html',
'/': 'pages/index.html',
'/index/[...slug]': 'pages/index/[...slug].html',
'/on-mount/[post]': 'pages/on-mount/[post].html',
'/p1/p2/all-ssg/[...rest]': 'pages/p1/p2/all-ssg/[...rest].js',
'/p1/p2/all-ssr/[...rest]': 'pages/p1/p2/all-ssr/[...rest].js',
'/p1/p2/nested-all-ssg/[...rest]':
'pages/p1/p2/nested-all-ssg/[...rest].js',
'/p1/p2/predefined-ssg/[...rest]':
'pages/p1/p2/predefined-ssg/[...rest].js',
'/_app': 'pages/_app.js',
'/_error': 'pages/_error.js',
'/_document': 'pages/_document.js',
'/404': 'pages/404.html',
})
})
}
}
}

Expand All @@ -1354,7 +1399,7 @@ describe('Dynamic Routing', () => {
})
afterAll(() => killApp(app))

runTests(true)
runTests({ dev: true, serverless: false })
})

describe('production mode', () => {
Expand All @@ -1369,7 +1414,7 @@ describe('Dynamic Routing', () => {
})
afterAll(() => killApp(app))

runTests()
runTests({ dev: false, serverless: false })
})

describe('serverless mode', () => {
Expand All @@ -1389,6 +1434,6 @@ describe('Dynamic Routing', () => {
await killApp(app)
await fs.remove(nextConfig)
})
runTests()
runTests({ dev: false, serverless: true })
})
})

0 comments on commit 668a33d

Please sign in to comment.