11import { TreeViewItem } from "../contracts/types" ;
2- import { TreeViewViewModel } from "./treeViewViewModel" ;
2+ import { TreeViewModel } from "./treeViewViewModel" ;
33
4- describe ( 'TreeViewViewModel ' , ( ) => {
4+ describe ( 'TreeViewModel ' , ( ) => {
55 const child1 : TreeViewItem =
66 {
77 type : "w-file" ,
@@ -39,50 +39,60 @@ describe('TreeViewViewModel', () => {
3939 child1 . checkedStatus = 'False' ;
4040 child2 . checkedStatus = 'False' ;
4141 parentFolder . children = [ child1 , child2 ]
42- TreeViewViewModel . loadNodes ( [ parentFolder ] ) ;
42+ TreeViewModel . loadNodes ( [ parentFolder ] ) ;
43+ TreeViewModel . selectedItems = [ ] ;
4344 } ) ;
4445
4546 it ( 'checkedStatusChanged() should set parentFolder to true if all children are checked' , ( ) => {
4647 child1 . checkedStatus = 'True' ;
4748 child2 . checkedStatus = 'True' ;
4849
49- TreeViewViewModel . checkedStatusChanged ( child1 ) ;
50+ TreeViewModel . checkedStatusChanged ( child1 ) ;
5051 expect ( parentFolder . checkedStatus ) . toBe ( 'True' ) ;
5152 } ) ;
5253
5354 it ( 'checkedStatusChanged() should set parentFolder to indeterminate if at least one of the children are unchecked' , ( ) => {
5455 child1 . checkedStatus = 'True' ;
5556 child2 . checkedStatus = 'False' ;
5657
57- TreeViewViewModel . checkedStatusChanged ( child2 ) ;
58+ TreeViewModel . checkedStatusChanged ( child2 ) ;
5859 expect ( parentFolder . checkedStatus ) . toBe ( 'Indeterminate' ) ;
5960 } ) ;
6061
6162 it ( 'notifyParentOfSelection() should set parentFolder to false if all children are unchecked' , ( ) => {
6263 child1 . checkedStatus = 'False' ;
6364 child2 . checkedStatus = 'False' ;
6465
65- TreeViewViewModel . checkedStatusChanged ( child2 ) ;
66+ TreeViewModel . checkedStatusChanged ( child2 ) ;
67+ expect ( TreeViewModel . selectedItems ) . toHaveLength ( 0 ) ;
68+ expect ( parentFolder . checkedStatus ) . toBe ( 'False' ) ;
69+ } ) ;
70+
71+ it ( 'notifyParentOfSelection() should set parentFolder to True & add to selectedItems if any child is checked' , ( ) => {
72+ child1 . checkedStatus = 'True' ;
73+ child2 . checkedStatus = 'False' ;
74+
75+ TreeViewModel . checkedStatusChanged ( child1 ) ;
76+ expect ( TreeViewModel . selectedItems ) . toHaveLength ( 1 ) ;
6677 expect ( parentFolder . checkedStatus ) . toBe ( 'False' ) ;
6778 } ) ;
6879
6980 it ( 'removeTreeViewItem() should remove nodes from flatenedLookup' , ( ) => {
70- TreeViewViewModel . removeTreeViewItem ( parentFolder . id ) ;
81+ TreeViewModel . removeTreeViewItem ( parentFolder . id ) ;
7182 expect ( parentFolder . children ?. length ) . toBe ( 0 ) ;
72- expect ( TreeViewViewModel . getNodes ( ) [ parentFolder . id ] ) . toBe ( undefined ) ;
83+ expect ( TreeViewModel . getNodes ( ) [ parentFolder . id ] ) . toBe ( undefined ) ;
7384 } ) ;
7485
7586 it ( 'removeTreeViewItem() should remove one node from flatenedLookup' , ( ) => {
76- TreeViewViewModel . removeTreeViewItem ( child2 . id ) ;
87+ TreeViewModel . removeTreeViewItem ( child2 . id ) ;
7788 expect ( parentFolder . children ?. length ) . toBe ( 1 ) ;
78- const nodeIds = Object . keys ( TreeViewViewModel . getNodes ( ) ) ;
89+ const nodeIds = Object . keys ( TreeViewModel . getNodes ( ) ) ;
7990 expect ( nodeIds . find ( id => id == child2 . id ) ) . toBe ( undefined )
8091 } ) ;
8192
8293 it ( 'addTreeViewItem() should add node to flatenedLookup' , ( ) => {
83- TreeViewViewModel . addTreeViewItem ( child3 ) ;
94+ TreeViewModel . addTreeViewItem ( child3 ) ;
8495 expect ( parentFolder . children ?. length ) . toBe ( 3 )
85- expect ( TreeViewViewModel . getNodes ( ) [ child3 . id ] ) . toBe ( child3 ) ;
86-
96+ expect ( TreeViewModel . getNodes ( ) [ child3 . id ] ) . toBe ( child3 ) ;
8797 } ) ;
8898} )
0 commit comments