Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
京东前端
nutui-react
提交
ac5a7e64
N
nutui-react
项目概览
京东前端
/
nutui-react
通知
0
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
nutui-react
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ac5a7e64
编写于
7月 06, 2022
作者:
O
oasis-cloud
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/main'
上级
90200501
afd3e182
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
459 addition
and
3 deletion
+459
-3
package.json
package.json
+2
-1
src/packages/collapse/__test__/__snapshots__/collapse.spec.tsx.snap
...es/collapse/__test__/__snapshots__/collapse.spec.tsx.snap
+127
-0
src/packages/collapse/__test__/collapse.spec.tsx
src/packages/collapse/__test__/collapse.spec.tsx
+164
-0
src/packages/collapseitem/collapseitem.tsx
src/packages/collapseitem/collapseitem.tsx
+5
-2
src/packages/switch/__test__/switch.spec.tsx
src/packages/switch/__test__/switch.spec.tsx
+50
-0
src/packages/tag/__test__/__snapshots__/tag.spec.tsx.snap
src/packages/tag/__test__/__snapshots__/tag.spec.tsx.snap
+23
-0
src/packages/tag/__test__/tag.spec.tsx
src/packages/tag/__test__/tag.spec.tsx
+88
-0
未找到文件。
package.json
浏览文件 @
ac5a7e64
...
...
@@ -56,7 +56,8 @@
"lint:fix"
:
"eslint --fix ."
,
"publish:beta"
:
"npm publish --tag beta"
,
"prepare"
:
"husky install"
,
"test"
:
"jest"
"test"
:
"jest"
,
"test:demo"
:
"jest --testNamePattern=^should match snapshot$ --runTestsByPath ./src/packages/collapse/__test__/collapse.spec.tsx"
},
"engines"
:
{
"node"
:
"^14.18.0 || >=15.0.0"
...
...
src/packages/collapse/__test__/__snapshots__/collapse.spec.tsx.snap
0 → 100644
浏览文件 @
ac5a7e64
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`should match snapshot 1`] = `
<DocumentFragment>
<div
class="nut-collapse"
>
<div
class="nut-collapse-item"
>
<div
class="nut-collapse-item__header"
>
<div
class="nut-collapse-item__title"
>
标题1
</div>
<div
class="nut-collapse-item__sub-title"
/>
<div
class="nut-collapse-item__icon-box"
>
<div
class="nut-collapse-item__icon"
style="transform: translateY(-50%) rotate(180deg);"
>
<i
class=" nut-icon nutui-iconfont nut-icon-arrow-down "
style="color: rgb(153, 153, 153); font-size: 16px; width: 16px; height: 16px;"
/>
</div>
</div>
</div>
<div
class="nut-collapse-item__content"
style="height: 0px;"
>
<div
class="nut-collapse-item__content-text"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</div>
</div>
</div>
<div
class="nut-collapse-item"
>
<div
class="nut-collapse-item__header"
>
<div
class="nut-collapse-item__title"
>
标题2
</div>
<div
class="nut-collapse-item__sub-title"
/>
<div
class="nut-collapse-item__icon-box"
>
<div
class="nut-collapse-item__icon"
style="transform: translateY(-50%) rotate(180deg);"
>
<i
class=" nut-icon nutui-iconfont nut-icon-arrow-down "
style="color: rgb(153, 153, 153); font-size: 16px; width: 16px; height: 16px;"
/>
</div>
</div>
</div>
<div
class="nut-collapse-item__content"
style="height: 0px;"
>
<div
class="nut-collapse-item__content-text"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</div>
</div>
</div>
<div
class="nut-collapse-item"
>
<div
class="nut-collapse-item__header nut-collapse-item__header--disabled"
>
<div
class="nut-collapse-item__title"
>
标题3
</div>
<div
class="nut-collapse-item__sub-title"
/>
<div
class="nut-collapse-item__icon-box"
>
<div
class="nut-collapse-item__icon"
style="transform: translateY(-50%);"
>
<i
class=" nut-icon nutui-iconfont nut-icon-arrow-down "
style="color: rgb(194, 194, 194); font-size: 16px; width: 16px; height: 16px;"
/>
</div>
</div>
</div>
<div
class="nut-collapse-item__content"
style="height: 0px;"
>
<div
class="nut-collapse-item__content-text"
>
京东“厂直优品计划”首推“政府优品馆”
</div>
</div>
</div>
</div>
</DocumentFragment>
`;
src/packages/collapse/__test__/collapse.spec.tsx
0 → 100644
浏览文件 @
ac5a7e64
import
*
as
React
from
'
react
'
// import * as renderer from 'react-test-renderer'
import
{
render
,
fireEvent
}
from
'
@testing-library/react
'
import
'
@testing-library/jest-dom
'
import
{
Collapse
}
from
'
../collapse
'
import
{
CollapseItem
}
from
'
../../collapseitem/collapseitem
'
test
(
'
should match snapshot
'
,
()
=>
{
const
{
asFragment
}
=
render
(
<>
<
Collapse
activeName
=
{
[
'
1
'
,
'
2
'
]
}
icon
=
"arrow-down"
iconSize
=
"16"
iconColor
=
"#999"
>
<
CollapseItem
title
=
"标题1"
name
=
"1"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题2"
name
=
"2"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题3"
name
=
"3"
disabled
>
京东“厂直优品计划”首推“政府优品馆”
</
CollapseItem
>
</
Collapse
>
</>
)
expect
(
asFragment
()).
toMatchSnapshot
()
})
test
(
'
prop icon iconSize iconColor
'
,
()
=>
{
const
{
getByTestId
,
container
}
=
render
(
<>
<
Collapse
activeName
=
{
[
'
1
'
,
'
2
'
]
}
icon
=
"arrow-down"
iconSize
=
"16"
iconColor
=
"#999"
>
<
CollapseItem
title
=
"标题1"
name
=
"1"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题2"
name
=
"2"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题3"
name
=
"3"
disabled
>
京东“厂直优品计划”首推“政府优品馆”
</
CollapseItem
>
</
Collapse
>
</>
)
expect
(
container
.
querySelector
(
'
.nut-collapse .nutui-iconfont
'
)).
toHaveClass
(
'
nut-icon-arrow-down
'
)
expect
(
container
.
querySelector
(
'
.nut-collapse .nutui-iconfont
'
)).
toHaveStyle
(
'
width: 16px
'
)
expect
(
container
.
querySelector
(
'
.nut-collapse .nutui-iconfont
'
)).
toHaveStyle
(
'
color: rgb(153, 153, 153)
'
)
})
test
(
'
prop activeName
'
,
()
=>
{
const
{
container
}
=
render
(
<>
<
Collapse
activeName
=
{
[
'
1
'
,
'
2
'
]
}
icon
=
"arrow-down"
iconSize
=
"16"
iconColor
=
"#999"
>
<
CollapseItem
title
=
"标题1"
name
=
"1"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题2"
name
=
"2"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题3"
name
=
"3"
disabled
>
京东“厂直优品计划”首推“政府优品馆”
</
CollapseItem
>
</
Collapse
>
</>
)
setTimeout
(()
=>
{
expect
(
container
.
querySelector
(
'
.nut-collapse-item__content
'
)).
toHaveStyle
(
'
height: 66px
'
)
},
100
)
})
test
(
'
prop accordion
'
,
()
=>
{
const
{
getByTestId
,
container
}
=
render
(
<>
<
Collapse
activeName
=
{
[
'
1
'
]
}
accordion
icon
=
"arrow-down"
>
<
CollapseItem
title
=
"标题1"
name
=
"1"
subTitle
=
"文本内容"
data
-
testid
=
"collapse-one"
>
第一个内容
</
CollapseItem
>
<
CollapseItem
title
=
"标题2"
name
=
"2"
data
-
testid
=
"collapse-item"
>
第二个内容
</
CollapseItem
>
<
CollapseItem
title
=
"标题3"
name
=
"3"
>
第三个内容
</
CollapseItem
>
</
Collapse
>
</>
)
fireEvent
.
click
(
getByTestId
(
'
collapse-item
'
))
setTimeout
(()
=>
{
expect
(
getByTestId
(
'
collapse-one
'
).
querySelector
(
'
.nut-collapse-item__content
'
)).
toHaveStyle
(
'
height: 0px
'
)
expect
(
getByTestId
(
'
collapse-item
'
).
querySelector
(
'
.nut-collapse-item__content
'
)).
toHaveStyle
(
'
height: 45px
'
)
},
100
)
})
test
(
'
prop rotate
'
,
()
=>
{
const
{
getByTestId
,
container
}
=
render
(
<>
<
Collapse
activeName
=
{
[
'
1
'
]
}
accordion
icon
=
"arrow-right2"
rotate
=
{
180
}
>
<
CollapseItem
title
=
"标题1"
name
=
"1"
icon
=
"arrow-down"
data
-
testid
=
"collapse-one"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题2"
name
=
"2"
icon
=
"arrow-down"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题3"
name
=
"3"
icon
=
"arrow-down"
>
京东“厂直优品计划”首推“政府优品馆”
</
CollapseItem
>
</
Collapse
>
</>
)
fireEvent
.
click
(
getByTestId
(
'
collapse-one
'
))
setTimeout
(()
=>
{
expect
(
getByTestId
(
'
collapse-one
'
).
querySelector
(
'
.nut-collapse-item__icon
'
)).
toHaveStyle
(
'
transform: translateY(-50%) rotate(180deg);
'
)
},
100
)
})
test
(
'
prop title subTitle titleIconColor titleIconSize titleIconPosition
'
,
()
=>
{
const
{
getByTestId
,
container
}
=
render
(
<>
<
Collapse
activeName
=
{
[
'
1
'
]
}
accordion
icon
=
"arrow-right2"
>
<
CollapseItem
title
=
"标题1"
subTitle
=
"副标题"
name
=
"1"
icon
=
"arrow-down"
titleIcon
=
"checked"
data
-
testid
=
"collapse-one"
titleIconColor
=
"red"
titleIconPosition
=
"left"
titleIconSize
=
"16"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题2"
name
=
"2"
icon
=
"arrow-down"
>
京东“厂直优品计划”首推“政府优品馆” 3年覆盖80%镇级政府
</
CollapseItem
>
<
CollapseItem
title
=
"标题3"
name
=
"3"
icon
=
"arrow-down"
>
京东“厂直优品计划”首推“政府优品馆”
</
CollapseItem
>
</
Collapse
>
</>
)
expect
(
getByTestId
(
'
collapse-one
'
).
querySelector
(
'
.nut-collapse-item__title
'
)).
toHaveTextContent
(
'
标题1
'
)
expect
(
getByTestId
(
'
collapse-one
'
).
querySelector
(
'
.nut-collapse-item__sub-title
'
)
).
toHaveTextContent
(
'
副标题
'
)
expect
(
getByTestId
(
'
collapse-one
'
).
querySelector
(
'
.nut-collapse-item__title b
'
)).
toHaveClass
(
'
nut-collapse-item__title-icon-left
'
)
expect
(
getByTestId
(
'
collapse-one
'
).
querySelector
(
'
.nutui-iconfont
'
)).
toHaveStyle
(
'
color: red; font-size: 16px; width: 16px; height: 16px;
'
)
})
src/packages/collapseitem/collapseitem.tsx
浏览文件 @
ac5a7e64
...
...
@@ -34,7 +34,9 @@ const defaultProps = {
titleIconPosition
:
''
,
titleIconSize
:
''
,
}
as
CollapseItemProps
export
const
CollapseItem
:
FunctionComponent
<
Partial
<
CollapseItemProps
>>
=
(
props
)
=>
{
export
const
CollapseItem
:
FunctionComponent
<
Partial
<
CollapseItemProps
>
&
React
.
HTMLAttributes
<
HTMLDivElement
>
>
=
(
props
)
=>
{
const
{
children
,
title
,
...
...
@@ -51,6 +53,7 @@ export const CollapseItem: FunctionComponent<Partial<CollapseItemProps>> = (prop
titleIconSize
,
iconSize
,
iconColor
,
...
rest
}
=
{
...
defaultProps
,
...
props
,
...
...
@@ -90,7 +93,7 @@ export const CollapseItem: FunctionComponent<Partial<CollapseItemProps>> = (prop
},
[
isOpen
,
domHeight
])
return
(
<
div
className
=
{
colBem
()
}
>
<
div
className
=
{
colBem
()
}
{
...
rest
}
>
<
div
className
=
{
colBem
(
'
header
'
,
{
disabled
})
}
onClick
=
{
()
=>
{
...
...
src/packages/switch/__test__/switch.spec.tsx
0 → 100644
浏览文件 @
ac5a7e64
import
*
as
React
from
'
react
'
import
{
render
,
fireEvent
}
from
'
@testing-library/react
'
import
'
@testing-library/jest-dom
'
import
{
Switch
}
from
'
../switch
'
test
(
'
activeColor && inactiveColor && activeText && checked && change && inactiveText && isAsync && className && style test
'
,
()
=>
{
const
state
:
any
=
{
activeColor
:
'
rgb(124, 88, 33)
'
,
inactiveColor
:
'
rgb(250, 104, 93)
'
,
activeText
:
'
开
'
,
inactiveText
:
'
关
'
,
checked
:
false
,
className
:
'
switch-test
'
,
style
:
{
fontSize
:
'
12px
'
},
}
const
{
activeColor
,
inactiveColor
,
activeText
,
inactiveText
,
className
,
style
}
=
state
const
testFn
=
jest
.
fn
()
const
{
container
}
=
render
(
<
Switch
className
=
{
className
}
style
=
{
style
}
isAsync
activeColor
=
{
activeColor
}
inactiveColor
=
{
inactiveColor
}
activeText
=
{
activeText
}
checked
=
{
false
}
change
=
{
testFn
}
inactiveText
=
{
inactiveText
}
/>
)
const
el
:
Element
|
null
=
container
.
querySelector
(
'
.nut-switch-base
'
)
if
(
el
)
{
expect
(
el
).
toHaveAttribute
(
'
class
'
,
`nut-switch switch-close nut-switch-base switch-test`
)
expect
(
el
).
toHaveAttribute
(
'
style
'
,
`background-color:
${
inactiveColor
}
; font-size: 12px;`
)
expect
(
el
).
toHaveTextContent
(
inactiveText
)
fireEvent
.
click
(
el
)
setTimeout
(()
=>
{
//异步
expect
(
el
).
toHaveAttribute
(
'
style
'
,
`background-color:
${
activeColor
}
;`
)
expect
(
el
).
toHaveTextContent
(
activeText
)
expect
(
testFn
).
toBeCalled
()
},
100
)
}
})
test
(
'
disable test
'
,
()
=>
{
render
(<
Switch
disable
/>)
const
el
=
document
.
getElementsByClassName
(
'
nut-switch-disable
'
)
expect
(
el
.
length
>
0
).
toBe
(
true
)
})
src/packages/tag/__test__/__snapshots__/tag.spec.tsx.snap
0 → 100644
浏览文件 @
ac5a7e64
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`type test 1`] = `
<div>
<div>
<div
class="nut-tag
nut-tag--primary
"
>
<span
class="text"
>
TEST
</span>
</div>
</div>
</div>
`;
src/packages/tag/__test__/tag.spec.tsx
0 → 100644
浏览文件 @
ac5a7e64
import
*
as
React
from
'
react
'
import
{
render
,
fireEvent
}
from
'
@testing-library/react
'
import
'
@testing-library/jest-dom
'
import
{
Tag
,
TagType
}
from
'
../tag
'
test
(
'
color test
'
,
()
=>
{
const
state
=
{
color
:
'
rgb(250, 104, 93)
'
,
}
const
{
getByTestId
,
container
}
=
render
(<
Tag
color
=
{
state
.
color
}
>
TEST
</
Tag
>)
expect
(
container
.
querySelector
(
'
.nut-tag--default
'
)).
toHaveAttribute
(
'
style
'
,
'
color: rgb(255, 255, 255); background: rgb(250, 104, 93);
'
)
})
test
(
'
type test
'
,
()
=>
{
const
state
:
{
type
:
TagType
}
=
{
type
:
'
primary
'
,
}
const
{
container
}
=
render
(<
Tag
type
=
{
state
.
type
}
>
TEST
</
Tag
>)
if
(
container
.
firstChild
)
{
expect
(
container
).
toMatchSnapshot
()
}
})
test
(
'
plain test
'
,
()
=>
{
const
state
=
{
plain
:
true
,
}
const
{
container
}
=
render
(<
Tag
plain
=
{
state
.
plain
}
>
TEST
</
Tag
>)
const
el
=
container
.
querySelectorAll
(
'
.nut-tag--plain
'
).
length
expect
(
el
>
0
).
toBe
(
true
)
})
test
(
'
round test
'
,
()
=>
{
const
state
=
{
round
:
true
,
}
const
{
container
}
=
render
(<
Tag
round
=
{
state
.
round
}
>
TEST
</
Tag
>)
const
el
:
any
=
container
.
querySelectorAll
(
'
.nut-tag--round
'
).
length
expect
(
el
>
0
).
toBe
(
true
)
})
test
(
'
mark test
'
,
()
=>
{
const
state
=
{
mark
:
true
,
}
const
{
container
}
=
render
(<
Tag
mark
=
{
state
.
mark
}
>
TEST
</
Tag
>)
const
el
:
any
=
container
.
querySelectorAll
(
'
.nut-tag--mark
'
)
expect
(
el
.
length
>
0
).
toBe
(
true
)
})
test
(
'
closeable && isShow test
'
,
()
=>
{
const
state
=
{
closeable
:
true
,
isShow
:
true
,
}
const
{
container
}
=
render
(
<
Tag
closeable
=
{
state
.
closeable
}
isShow
=
{
state
.
isShow
}
>
TEST
</
Tag
>
)
const
el
:
any
=
container
.
querySelectorAll
(
'
.nut-tag--close
'
)[
0
]
const
icon
:
any
=
el
.
childNodes
[
1
]
fireEvent
.
click
(
icon
)
expect
(
el
&&
el
.
length
>
0
).
toBe
(
false
)
})
test
(
'
emit click event
'
,
()
=>
{
const
testClick
=
jest
.
fn
()
function
tree
()
{
return
render
(
<
Tag
data
-
testid
=
"tag-click"
onClick
=
{
()
=>
testClick
()
}
prefixCls
=
"test"
>
TEST
</
Tag
>
)
}
const
{
container
}
=
tree
()
const
el
:
any
=
container
.
querySelector
(
'
test
'
)
if
(
el
)
{
fireEvent
.
click
(
el
)
expect
(
testClick
).
toBeCalled
()
}
})
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录