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
|
import { TestBed, async } from '@angular/core/testing';
import { TreeModel, TreeComponent, ITreeOptions } from 'angular-tree-component';
import { validation, getBranchRequierds } from './target.util';
const _nodes = [
{
id: 1,
name: 'North America',
requiredChildren: ['United States'],
children: [
{
id: 11,
name: 'United States',
requiredChildren: ['New York', 'Florida'],
children: [
{ id: 111, name: 'New York' },
{ id: 112, name: 'California' },
{ id: 113, name: 'Florida' }
]
},
{ id: 12, name: 'Canada' }
]
},
{
name: 'South America',
children: [{ name: 'Argentina', children: [] }, { name: 'Brazil' }]
},
{
name: 'Europe',
children: [
{ name: 'England' },
{ name: 'Germany' },
{ name: 'France' },
{ name: 'Italy' },
{ name: 'Spain' }
]
}
];
const tree = new TreeModel();
describe('treeTest', () => {
beforeAll(() => {
tree.setData({
nodes: _nodes,
options: null,
events: null
});
});
it('should return node branch requireds', () => {
// console.log('root', tree.getFirstRoot().data.name);
// console.log(tree.getNodeBy((node) => node.data.name === 'California').data.uuid);
// console.log(tree.getNodeBy((node) => node.data.name === 'California').id);
// console.log(tree.getNodeById(1));
const selectedNode = tree.getNodeBy(
node => node.data.name === 'California'
);
const result = getBranchRequierds(selectedNode, []);
const expected = [['New York', 'Florida'], ['United States']];
expect(result.length).toBeGreaterThan(1);
expect(result).toEqual(expected);
});
it('should return empty array - success state', () => {
const userSelect = ['Florida', 'New York', 'United States'];
const selectedNode = tree.getNodeBy(node => node.data.name === 'New York');
const result = validation(selectedNode, userSelect);
expect(result.length).toEqual(0);
expect(result).toEqual([]);
});
it('should return validation array - missing required filed', () => {
const userSelect = ['New York'];
const selectedNode = tree.getNodeBy(node => node.data.name === 'New York');
const result = validation(selectedNode, userSelect);
const expected = ['Florida', 'United States'];
expect(result).toEqual(expected);
});
});
|