forked from vercel/next.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
vercel#42398 fix(app-render): escape segment value
- Loading branch information
1 parent
0e8f241
commit 49fd975
Showing
6 changed files
with
108 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
test/production/app-dir-prefetch-non-iso-url/app/[slug]/page.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
export default function Slug(props) { | ||
return ( | ||
<> | ||
<p id="page">/[slug]</p> | ||
<p id="props">{JSON.stringify(props)}</p> | ||
</> | ||
) | ||
} | ||
|
||
export function generateStaticParams() { | ||
return [{ slug: 'iso-url' }, { slug: 'кириллица' }] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
export default function Layout({ children }) { | ||
return ( | ||
<html> | ||
<body>{children}</body> | ||
</html> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import Link from 'next/link' | ||
|
||
export default function Page(props) { | ||
return ( | ||
<> | ||
<p id="page">index</p> | ||
<p id="props">{JSON.stringify(props)}</p> | ||
<Link href="/iso-url" id="to-iso"> | ||
/iso-url | ||
</Link> | ||
<br /> | ||
<Link href="/кириллица" id="to-non-iso"> | ||
/кириллица | ||
</Link> | ||
<br /> | ||
</> | ||
) | ||
} |
58 changes: 58 additions & 0 deletions
58
test/production/app-dir-prefetch-non-iso-url/index.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
import { createNext, FileRef } from 'e2e-utils' | ||
import { NextInstance } from 'test/lib/next-modes/base' | ||
import { join } from 'path' | ||
import { BrowserInterface } from '../../lib/browsers/base' | ||
import webdriver from 'next-webdriver' | ||
import { waitFor } from 'next-test-utils' | ||
|
||
describe('app-dir-prefetch-non-iso-url', () => { | ||
let next: NextInstance | ||
|
||
beforeAll(async () => { | ||
next = await createNext({ | ||
files: { | ||
'next.config.js': new FileRef(join(__dirname, 'next.config.js')), | ||
app: new FileRef(join(__dirname, 'app')), | ||
}, | ||
}) | ||
}) | ||
afterAll(() => next.destroy()) | ||
|
||
it('should go to iso url', async () => { | ||
let browser: BrowserInterface | ||
|
||
try { | ||
browser = await webdriver(next.appPort, '/') | ||
await browser.elementByCss('#to-iso').click() | ||
|
||
const text = await browser.elementByCss('#page').text() | ||
|
||
await waitFor(3000) | ||
|
||
expect(text).toBe('/[slug]') | ||
} finally { | ||
if (browser) { | ||
await browser.close() | ||
} | ||
} | ||
}) | ||
|
||
it('should go to non-iso url', async () => { | ||
let browser: BrowserInterface | ||
|
||
try { | ||
browser = await webdriver(next.appPort, '/') | ||
await browser.elementByCss('#to-non-iso').click() | ||
|
||
const text = await browser.elementByCss('#page').text() | ||
|
||
await waitFor(3000) | ||
|
||
expect(text).toBe('/[slug]') | ||
} finally { | ||
if (browser) { | ||
await browser.close() | ||
} | ||
} | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
/** @type {import("next").NextConfig} */ | ||
const nextConfig = { | ||
experimental: { appDir: true }, | ||
} | ||
|
||
module.exports = nextConfig |