Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CoCo_Code_Op2
next.js
提交
ec385e57
N
next.js
项目概览
CoCo_Code_Op2
/
next.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
next.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
ec385e57
编写于
5月 29, 2019
作者:
J
Joe Haddad
提交者:
GitHub
5月 29, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable optional param routing code paths (#7459)
* Disable optional param routing code paths * Fix tests
上级
c8a4682d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
28 addition
and
18 deletion
+28
-18
packages/next-server/lib/router/utils.ts
packages/next-server/lib/router/utils.ts
+11
-2
test/integration/dynamic-routing/pages/blog/$post/comment/$id.js
...tegration/dynamic-routing/pages/blog/$post/comment/$id.js
+0
-0
test/integration/dynamic-routing/pages/index.js
test/integration/dynamic-routing/pages/index.js
+2
-2
test/integration/dynamic-routing/test/index.test.js
test/integration/dynamic-routing/test/index.test.js
+15
-14
未找到文件。
packages/next-server/lib/router/utils.ts
浏览文件 @
ec385e57
...
...
@@ -13,9 +13,18 @@ export function getRouteRegex(
/
\/\\\$([^\/]
+
?)(?=\/
|$
)
/g
,
(
_
,
$1
)
=>
(
(
groups
[
$1
.
replace
(
/
\\\$
$/
,
''
).
replace
(
/
\\([
|
\\
{}()[
\]
^$+*?.-
])
/g
,
'
$1
'
)
$1
// // Remove optional parameter marker
// .replace(/\\\$$/, '')
// Un-escape key
.
replace
(
/
\\([
|
\\
{}()[
\]
^$+*?.-
])
/g
,
'
$1
'
)
]
=
groupIndex
++
),
$1
.
lastIndexOf
(
'
$
'
)
===
$1
.
length
-
1
?
'
(?:/([^/]+?))?
'
:
'
/([^/]+?)
'
// // Test the route for an optional parameter
// $1.lastIndexOf('$') === $1.length - 1
// ? // Optional: match a param
// '(?:/([^/]+?))?'
// : // Required: match a param
'
/([^/]+?)
'
)
)
...
...
test/integration/dynamic-routing/pages/blog/$post/comment/$id
$
.js
→
test/integration/dynamic-routing/pages/blog/$post/comment/$id.js
浏览文件 @
ec385e57
文件已移动
test/integration/dynamic-routing/pages/index.js
浏览文件 @
ec385e57
...
...
@@ -15,11 +15,11 @@ export default () => (
<
a
id
=
'
view-post-1-comment-1
'
>
View
comment
1
on
post
1
<
/a
>
<
/Link
>
<
br
/>
<
Link
href
=
'
/blog/$post/comment/$id
$
'
as
=
'
/blog/543/comment
'
>
<
Link
href
=
'
/blog/$post/comment/$id
'
as
=
'
/blog/543/comment
'
>
<
a
id
=
'
view-blog-post-1-comments
'
>
View
all
comments
on
blog
post
543
<
/a
>
<
/Link
>
<
br
/>
<
Link
href
=
'
/blog/$post/comment/$id
$
'
as
=
'
/blog/321/comment/123
'
>
<
Link
href
=
'
/blog/$post/comment/$id
'
as
=
'
/blog/321/comment/123
'
>
<
a
id
=
'
view-nested-dynamic-cmnt
'
>
View
comment
123
on
blog
post
321
<
/a
>
<
/Link
>
<
/div
>
...
...
test/integration/dynamic-routing/test/index.test.js
浏览文件 @
ec385e57
...
...
@@ -48,7 +48,8 @@ function runTests () {
it
(
'
should render optional dynamic page
'
,
async
()
=>
{
const
html
=
await
renderViaHTTP
(
appPort
,
'
/blog/543/comment
'
)
expect
(
html
).
toMatch
(
/blog post.*543.*comment.*all/i
)
// expect(html).toMatch(/blog post.*543.*comment.*all/i)
expect
(
html
).
toMatch
(
/404/i
)
})
it
(
'
should render nested optional dynamic page
'
,
async
()
=>
{
...
...
@@ -70,19 +71,19 @@ function runTests () {
}
})
it
(
'
should navigate optional dynamic page
'
,
async
()
=>
{
let
browser
try
{
browser
=
await
webdriver
(
appPort
,
'
/
'
)
await
browser
.
elementByCss
(
'
#view-blog-post-1-comments
'
).
click
()
await
browser
.
waitForElementByCss
(
'
p
'
)
const
text
=
await
browser
.
elementByCss
(
'
p
'
).
text
()
expect
(
text
).
toMatch
(
/blog post.*543.*comment.*
\(
all
\)
/i
)
}
finally
{
if
(
browser
)
await
browser
.
close
()
}
})
//
it('should navigate optional dynamic page', async () => {
//
let browser
//
try {
//
browser = await webdriver(appPort, '/')
//
await browser.elementByCss('#view-blog-post-1-comments').click()
//
await browser.waitForElementByCss('p')
//
const text = await browser.elementByCss('p').text()
//
expect(text).toMatch(/blog post.*543.*comment.*\(all\)/i)
//
} finally {
//
if (browser) await browser.close()
//
}
//
})
it
(
'
should navigate optional dynamic page with value
'
,
async
()
=>
{
let
browser
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录