Skip to content

Commit d0c07fb

Browse files
committed
Add tests for nodes property
1 parent 0f77dde commit d0c07fb

File tree

3 files changed

+69
-2
lines changed

3 files changed

+69
-2
lines changed

examples/dist/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6810,7 +6810,7 @@ var Tree = function (_React$Component) {
68106810

68116811

68126812
return nodes.map(function (node) {
6813-
var formatted = Object.create(node);
6813+
var formatted = _extends({}, node);
68146814

68156815
formatted.checked = checked.indexOf(node.value) > -1;
68166816
formatted.expanded = expanded.indexOf(node.value) > -1;

src/js/Tree.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class Tree extends React.Component {
6161
const { checked, expanded } = this.props;
6262

6363
return nodes.map((node) => {
64-
const formatted = Object.create(node);
64+
const formatted = { ...node };
6565

6666
formatted.checked = checked.indexOf(node.value) > -1;
6767
formatted.expanded = expanded.indexOf(node.value) > -1;

test/index.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { shallow } from 'enzyme';
33
import { assert } from 'chai';
44

55
import CheckboxTree from '../src/js/Tree';
6+
import TreeNode from '../src/js/TreeNode';
67

78
describe('<CheckboxTree />', () => {
89
describe('component', () => {
@@ -20,5 +21,71 @@ describe('<CheckboxTree />', () => {
2021
assert.isTrue(wrapper.find('.react-checkbox-tree').exists());
2122
});
2223
});
24+
25+
describe('nodes', () => {
26+
it('should render the node\'s label', () => {
27+
const wrapper = shallow(
28+
<CheckboxTree
29+
nodes={[{ value: 'jupiter', label: 'Jupiter' }]}
30+
/>,
31+
);
32+
33+
assert.equal('Jupiter', wrapper.find(TreeNode).prop('label'));
34+
});
35+
36+
it('should render the node\'s legacy label', () => {
37+
const wrapper = shallow(
38+
<CheckboxTree
39+
nodes={[{ value: 'jupiter', title: 'Jupiter' }]}
40+
/>,
41+
);
42+
43+
assert.equal('Jupiter', wrapper.find(TreeNode).prop('label'));
44+
});
45+
46+
it('should render the node\'s value', () => {
47+
const wrapper = shallow(
48+
<CheckboxTree
49+
nodes={[{ value: 'jupiter', title: 'Jupiter' }]}
50+
/>,
51+
);
52+
53+
assert.equal('jupiter', wrapper.find(TreeNode).prop('value'));
54+
});
55+
56+
it('should render multiple nodes', () => {
57+
const wrapper = shallow(
58+
<CheckboxTree
59+
nodes={[
60+
{ value: 'jupiter', title: 'Jupiter' },
61+
{ value: 'saturn', title: 'Saturn' },
62+
]}
63+
/>,
64+
);
65+
66+
assert.equal('jupiter', wrapper.find(TreeNode).at(0).prop('value'));
67+
assert.equal('saturn', wrapper.find(TreeNode).at(1).prop('value'));
68+
});
69+
70+
it('should render node children', () => {
71+
const wrapper = shallow(
72+
<CheckboxTree
73+
nodes={[
74+
{
75+
value: 'jupiter',
76+
title: 'Jupiter',
77+
children: [
78+
{ value: 'europa', label: 'Europa' },
79+
],
80+
},
81+
]}
82+
/>,
83+
);
84+
85+
const { value, label } = wrapper.find(TreeNode).prop('rawChildren')[0];
86+
87+
assert.deepEqual({ value: 'europa', label: 'Europa' }, { value, label });
88+
});
89+
});
2390
});
2491

0 commit comments

Comments
 (0)