@cainiaofe/cn-ui-m
Version:
60 lines (59 loc) • 2.65 kB
JavaScript
import { updateParentNodeState } from '../update-parent-node-state';
describe('updateParentNodeState', function () {
test('should update parent node state correctly when all children are checked', function () {
var node = {
label: 'Node 1',
value: 'Node 1',
children: [
{ label: 'Child 1', value: 'Child 1', checked: true, disabled: false },
{ label: 'Child 2', value: 'Child 2', checked: true, disabled: false },
{ label: 'Child 3', value: 'Child 3', checked: true, disabled: false },
],
};
updateParentNodeState(node);
expect(node.checked).toBe(true);
expect(node.indeterminate).toBe(false);
});
test('should update parent node state correctly when some children are checked', function () {
var node = {
label: 'Node 1',
value: 'Node 1',
children: [
{ label: 'Child 1', value: 'Child 1', checked: true, disabled: false },
{ label: 'Child 2', value: 'Child 2', checked: false, disabled: false },
{ label: 'Child 3', value: 'Child 3', checked: true, disabled: false },
],
};
updateParentNodeState(node);
expect(node.checked).toBe(false);
expect(node.indeterminate).toBe(true);
});
test('should update parent node state correctly when no children are checked', function () {
var node = {
label: 'Node 1',
value: 'Node 1',
children: [
{ label: 'Child 1', value: 'Child 1', checked: false, disabled: false },
{ label: 'Child 2', value: 'Child 2', checked: false, disabled: false },
{ label: 'Child 3', value: 'Child 3', checked: false, disabled: false },
],
};
updateParentNodeState(node);
expect(node.checked).toBe(false);
expect(node.indeterminate).toBe(false);
});
test('should update parent node state when some children are disabled and other children are checked', function () {
var node = {
label: 'Node 1',
value: 'Node 1',
children: [
{ label: 'Child 1', value: 'Child 1', checked: false, disabled: true },
{ label: 'Child 2', value: 'Child 2', checked: true, disabled: false },
{ label: 'Child 3', value: 'Child 3', checked: true, disabled: false },
],
};
updateParentNodeState(node);
expect(node.checked).toBe(true);
expect(node.indeterminate).toBe(false);
});
});