-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathextToTree.test.js
More file actions
60 lines (57 loc) · 1.17 KB
/
Copy pathextToTree.test.js
File metadata and controls
60 lines (57 loc) · 1.17 KB
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
import {
extToTree,
XMutateLockedElementX,
} from '../index';
const testCases = [
[
{ 'a.a2': [123] },
undefined,
{ a: { a2: new XMutateLockedElementX([123]) } },
],
[
{ 'a.a2': [123] },
{ a: { a2: [] } },
{ a: { a2: new XMutateLockedElementX([123]) } },
],
[
{ 'a.a2[]': 123, 'a.a2.[]': 321 },
undefined,
{ a: { a2: { '[+101]': 123, '[+102]': 321 } } },
],
[
{ 'a.a2[>2]': 123 },
undefined,
{ a: { a2: { '[>2]': 123 } } },
],
// [
// { 'a.a2[>2...]': 123 },
// undefined,
// { a: { a2: { '[>2...]': 123 } } }
// ],
[
{ 'a.a2': { k: 1 }, 'a.a2.z': 5 },
undefined,
{ a: { a2: new XMutateLockedElementX({ k: 1, z: 5 }) } },
],
[
{ 'a.a2.k': 1, 'a.a2.z': 5 },
undefined,
{ a: { a2: { k: 1, z: 5 } } },
],
[
{ 'a.a2.k': 1, 'a.a2.z': 5 },
{ a: { a2: { k: 1, z: 5 } } },
{},
],
[
{ 'a.a2.k': 1, 'a.a2.z': 5 },
{ a: { a2: { k: 1 } } },
{ a: { a2: { z: 5 } } },
],
];
describe('extToTree', () => {
test.each(testCases)('%# extToArray(%j)', (data, obj, expected) => {
const result = extToTree(data, obj);
expect(result).toEqual(expected);
});
});