Skip to content

Commit 9653824

Browse files
committed
test: 新增单元测试
1 parent fdd9f62 commit 9653824

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed

tests/unit/expandDeep.spec.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Prop: expandDeep(自动展开的层级)
2+
import { mount } from '@vue/test-utils'
3+
import JsonTree from '@/index.js'
4+
5+
// 使用这个方法生成的 json 结构数据
6+
// 根据 JsonTree 的默认项
7+
// 将会全部展开(默认展开两级), 并显示 3 条连接线
8+
const genJsonData = () => {
9+
return {
10+
name: 'Tom',
11+
age: 2,
12+
friends: [
13+
{ name: 'Jerry' },
14+
{ name: 'Tuffy' }
15+
]
16+
}
17+
}
18+
19+
const factory = (propsData) => {
20+
return mount(JsonTree, {
21+
propsData: {
22+
jsonData: genJsonData(),
23+
...propsData
24+
}
25+
})
26+
}
27+
28+
describe('JsonTree.vue props:expandDeep', () => {
29+
it('默认情况下展开 2 层', () => {
30+
const wrapper = factory()
31+
32+
const deep3IsCollapsed = wrapper
33+
.findAll('[data-json-tree-node-deep="2"] .json-tree__content')
34+
.wrappers
35+
.every(v => v.classes().includes('json-tree__content--collapse'))
36+
37+
expect(deep3IsCollapsed).toBe(true)
38+
})
39+
40+
it('展开 1 层', () => {
41+
const wrapper = factory({ expandDeep: 1 })
42+
43+
const deep2IsCollapsed = wrapper
44+
.findAll('[data-json-tree-node-deep="1"] .json-tree__content')
45+
.wrappers
46+
.every(v => v.classes().includes('json-tree__content--collapse'))
47+
48+
expect(deep2IsCollapsed).toBe(true)
49+
})
50+
})

tests/unit/indent.spec.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Prop: indent(层级缩进)
2+
import { mount } from '@vue/test-utils'
3+
import JsonTree from '@/index.js'
4+
5+
// 使用这个方法生成的 json 结构数据
6+
// 根据 JsonTree 的默认项
7+
// 将会全部展开(默认展开两级), 并显示 3 条连接线
8+
const genJsonData = () => {
9+
return {
10+
name: 'Tom',
11+
age: 2,
12+
friends: [
13+
{ name: 'Jerry' },
14+
{ name: 'Tuffy' }
15+
]
16+
}
17+
}
18+
19+
const factory = (propsData) => {
20+
return mount(JsonTree, {
21+
propsData: {
22+
jsonData: genJsonData(),
23+
...propsData
24+
}
25+
})
26+
}
27+
28+
describe('JsonTree.vue props:indent', () => {
29+
it('默认情况下缩进为 20px', () => {
30+
const wrapper = factory()
31+
32+
const is20px = wrapper
33+
.findAll('.json-tree__node')
34+
.wrappers
35+
.every(v => {
36+
const deep = v.attributes('data-json-tree-node-deep')
37+
const paddingLeft = v.element.style.getPropertyValue('padding-left')
38+
// 第一层没有缩进
39+
if (deep === '0') return paddingLeft === '0px'
40+
// 其他层级都缩进 '20px'
41+
return paddingLeft === '20px'
42+
})
43+
44+
expect(is20px).toBe(true)
45+
})
46+
47+
it('设置缩进为 30px', () => {
48+
const wrapper = factory({ indent: '30px' })
49+
50+
const is30px = wrapper
51+
.findAll('.json-tree__node')
52+
.wrappers
53+
.every(v => {
54+
const deep = v.attributes('data-json-tree-node-deep')
55+
const paddingLeft = v.element.style.getPropertyValue('padding-left')
56+
// 第一层没有缩进
57+
if (deep === '0') return paddingLeft === '0px'
58+
// 其他层级都缩进 '20px'
59+
return paddingLeft === '30px'
60+
})
61+
62+
expect(is30px).toBe(true)
63+
})
64+
})

0 commit comments

Comments
 (0)