forked from zhangshichun/tree-lodash
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfromArray.test.ts
68 lines (65 loc) · 1.71 KB
/
fromArray.test.ts
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
/* global describe, it, beforeEach */
import "mocha";
import { expect } from "chai";
import { fromArray } from "../src/index";
describe("[fromArray]", function () {
const commonArray = [
{
id: "1",
name: "1",
},
{
id: "2",
name: "2",
pid: "1",
},
{
id: "3",
name: "3",
pid: "1",
},
{
id: "4",
name: "4",
pid: "2",
},
{
id: "5",
name: "5",
},
];
it("default option", function () {
const res = fromArray(commonArray);
expect(res.length).to.be.equal(1);
expect(res[0].id).to.be.equal("1");
expect(res[0].children[0].id).to.be.equal("2");
expect(res[0].children[1].id).to.be.equal("3");
expect(res[0].children[0].children[0].id).to.be.equal("4");
});
it("custom keys", function () {
const customArray = commonArray.map((t) => {
return {
name: t.name,
k: t.id,
pk: t.pid,
};
});
const res = fromArray(customArray, {
itemKey: "k",
parentKey: "pk",
});
expect(res.length).to.be.equal(1);
expect(res[0].k).to.be.equal("1");
expect(res[0].children[0].k).to.be.equal("2");
expect(res[0].children[1].k).to.be.equal("3");
expect(res[0].children[0].children[0].k).to.be.equal("4");
});
it("custom childrenKey", function () {
const res = fromArray(commonArray, { childrenKey: "subItems" });
expect(res.length).to.be.equal(1);
expect(res[0].id).to.be.equal("1");
expect(res[0].subItems[0].id).to.be.equal("2");
expect(res[0].subItems[1].id).to.be.equal("3");
expect(res[0].subItems[0].subItems[0].id).to.be.equal("4");
});
});