forked from Happy-Coding-Clans/vue-easytable
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathve-table-operation-column.spec.js
116 lines (109 loc) · 2.98 KB
/
ve-table-operation-column.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import { mount } from "@vue/test-utils";
import veTable from "@/ve-table";
import { later } from "../util";
import { KEY_CODES } from "../constant";
describe("veTable operation column", () => {
const TABLE_DATA = [
{
name: "John",
date: "1900-05-20",
hobby: "coding",
address: "No.1 Century Avenue, Shanghai",
rowKey: "1",
},
{
name: "Dickerson",
date: "1910-06-20",
hobby: "coding",
address: "No.1 Century Avenue, Beijing",
rowKey: "2",
},
{
name: "Larsen",
date: "2000-07-20",
hobby: "coding and coding repeat",
address: "No.1 Century Avenue, Chongqing",
rowKey: "3",
},
{
name: "Geneva",
date: "2010-08-20",
hobby: "coding and coding repeat",
address: "No.1 Century Avenue, Xiamen",
rowKey: "4",
},
{
name: "Jami",
date: "2020-09-20",
hobby: "coding and coding repeat",
address: "No.1 Century Avenue, Shenzhen",
rowKey: "5",
},
];
const COLUMNS = [
{
field: "index",
key: "index",
operationColumn: true,
title: "#",
width: 50,
align: "center",
renderBodyCell: ({ row, column, rowIndex }, h) => {
return ++rowIndex;
},
edit: true,
},
{
field: "name",
key: "a",
title: "Name",
align: "left",
width: "20%",
},
{
field: "date",
key: "b",
title: "Date",
align: "left",
width: "20%",
},
{
field: "hobby",
key: "c",
title: "Hobby",
align: "center",
width: "30%",
},
{ field: "address", key: "d", title: "Address", width: "30%" },
];
it("render", () => {
const WRAPPER = mount(veTable, {
propsData: {
columns: COLUMNS,
tableData: TABLE_DATA,
cellSelectionOption: {
// default true
enable: true,
},
rowKeyFieldName: "rowKey",
},
});
expect(WRAPPER.html()).toMatchSnapshot();
});
it("operation column", async () => {
const wrapper = mount(veTable, {
propsData: {
columns: COLUMNS,
tableData: TABLE_DATA,
rowKeyFieldName: "rowKey",
},
});
await later();
const selectionTd = wrapper
.findAll(".ve-table-body-tr")
.at(0)
.findAll(".ve-table-body-td")
.at(0);
expect(selectionTd.classes()).toContain("ve-table-operation-col");
});
});