UNPKG

@cainiaofe/cn-ui-m

Version:
60 lines (59 loc) 2.65 kB
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); }); });