@@ -96,14 +96,115 @@ export function runHarnessTests(
96
96
// no-op if already collapsed
97
97
expect ( await firstGroup . isExpanded ( ) ) . toBe ( false ) ;
98
98
} ) ;
99
+
100
+ it ( 'should correctly get tree structure' , async ( ) => {
101
+ const trees = await loader . getAllHarnesses ( treeHarness ) ;
102
+ const flatTree = trees [ 0 ] ;
103
+
104
+ expect ( await flatTree . getTreeStructure ( ) ) . toEqual ( {
105
+ children : [
106
+ { text : 'Flat Group 1' } ,
107
+ { text : 'Flat Group 2' }
108
+ ]
109
+ } ) ;
110
+
111
+ const firstGroup = ( await flatTree . getNodes ( { text : / F l a t G r o u p 1 / } ) ) [ 0 ] ;
112
+ await firstGroup . expand ( ) ;
113
+
114
+ expect ( await flatTree . getTreeStructure ( ) ) . toEqual ( {
115
+ children : [
116
+ {
117
+ text : 'Flat Group 1' ,
118
+ children : [
119
+ { text : 'Flat Leaf 1.1' } ,
120
+ { text : 'Flat Leaf 1.2' } ,
121
+ { text : 'Flat Leaf 1.3' }
122
+ ]
123
+ } ,
124
+ { text : 'Flat Group 2' }
125
+ ]
126
+ } ) ;
127
+
128
+ const secondGroup = ( await flatTree . getNodes ( { text : / F l a t G r o u p 2 / } ) ) [ 0 ] ;
129
+ await secondGroup . expand ( ) ;
130
+
131
+ expect ( await flatTree . getTreeStructure ( ) ) . toEqual ( {
132
+ children : [
133
+ {
134
+ text : 'Flat Group 1' ,
135
+ children : [
136
+ { text : 'Flat Leaf 1.1' } ,
137
+ { text : 'Flat Leaf 1.2' } ,
138
+ { text : 'Flat Leaf 1.3' }
139
+ ]
140
+ } ,
141
+ {
142
+ text : 'Flat Group 2' ,
143
+ children : [
144
+ { text : 'Flat Group 2.1' } ,
145
+ ]
146
+ }
147
+ ]
148
+ } ) ;
149
+ } ) ;
150
+
151
+ it ( 'should correctly get tree structure' , async ( ) => {
152
+ const trees = await loader . getAllHarnesses ( treeHarness ) ;
153
+ const nestedTree = trees [ 1 ] ;
154
+ expect ( await nestedTree . getTreeStructure ( ) ) . toEqual ( {
155
+ children : [
156
+ { text : 'Nested Group 1' } ,
157
+ { text : 'Nested Group 2' }
158
+ ]
159
+ } ) ;
160
+
161
+ const firstGroup = ( await nestedTree . getNodes ( { text : / N e s t e d G r o u p 1 / } ) ) [ 0 ] ;
162
+ await firstGroup . expand ( ) ;
163
+ expect ( await nestedTree . getTreeStructure ( ) ) . toEqual (
164
+ {
165
+ children : [
166
+ {
167
+ text : 'Nested Group 1' ,
168
+ children : [
169
+ { text : 'Nested Leaf 1.1' } ,
170
+ { text : 'Nested Leaf 1.2' } ,
171
+ { text : 'Nested Leaf 1.3' }
172
+ ]
173
+ } ,
174
+ { text : 'Nested Group 2' }
175
+ ]
176
+ } ) ;
177
+
178
+ const secondGroup = ( await nestedTree . getNodes ( { text : / N e s t e d G r o u p 2 / } ) ) [ 0 ] ;
179
+ await secondGroup . expand ( ) ;
180
+ expect ( await nestedTree . getTreeStructure ( ) ) . toEqual (
181
+ {
182
+ children : [
183
+ {
184
+ text : 'Nested Group 1' ,
185
+ children : [
186
+ { text : 'Nested Leaf 1.1' } ,
187
+ { text : 'Nested Leaf 1.2' } ,
188
+ { text : 'Nested Leaf 1.3' }
189
+ ]
190
+ } ,
191
+ {
192
+ text : 'Nested Group 2' ,
193
+ children : [
194
+ { text : 'Nested Group 2.1' } ,
195
+ ]
196
+ }
197
+ ]
198
+ } ) ;
199
+ } ) ;
99
200
}
100
201
101
- interface FoodNode {
202
+ interface Node {
102
203
name : string ;
103
- children ?: FoodNode [ ] ;
204
+ children ?: Node [ ] ;
104
205
}
105
206
106
- const FLAT_TREE_DATA : FoodNode [ ] = [
207
+ const FLAT_TREE_DATA : Node [ ] = [
107
208
{
108
209
name : 'Flat Group 1' ,
109
210
children : [
@@ -126,7 +227,7 @@ const FLAT_TREE_DATA: FoodNode[] = [
126
227
} ,
127
228
] ;
128
229
129
- const NESTED_TREE_DATA : FoodNode [ ] = [
230
+ const NESTED_TREE_DATA : Node [ ] = [
130
231
{
131
232
name : 'Nested Group 1' ,
132
233
children : [
@@ -188,7 +289,7 @@ interface ExampleFlatNode {
188
289
`
189
290
} )
190
291
class TreeHarnessTest {
191
- private _transformer = ( node : FoodNode , level : number ) => {
292
+ private _transformer = ( node : Node , level : number ) => {
192
293
return {
193
294
expandable : ! ! node . children && node . children . length > 0 ,
194
295
name : node . name ,
@@ -201,8 +302,8 @@ class TreeHarnessTest {
201
302
flatTreeControl = new FlatTreeControl < ExampleFlatNode > (
202
303
node => node . level , node => node . expandable ) ;
203
304
flatTreeDataSource = new MatTreeFlatDataSource ( this . flatTreeControl , this . treeFlattener ) ;
204
- nestedTreeControl = new NestedTreeControl < FoodNode > ( node => node . children ) ;
205
- nestedTreeDataSource = new MatTreeNestedDataSource < FoodNode > ( ) ;
305
+ nestedTreeControl = new NestedTreeControl < Node > ( node => node . children ) ;
306
+ nestedTreeDataSource = new MatTreeNestedDataSource < Node > ( ) ;
206
307
207
308
constructor ( ) {
208
309
this . flatTreeDataSource . data = FLAT_TREE_DATA ;
@@ -211,5 +312,5 @@ class TreeHarnessTest {
211
312
212
313
flatTreeHasChild = ( _ : number , node : ExampleFlatNode ) => node . expandable ;
213
314
214
- nestedTreeHasChild = ( _ : number , node : FoodNode ) => ! ! node . children && node . children . length > 0 ;
315
+ nestedTreeHasChild = ( _ : number , node : Node ) => ! ! node . children && node . children . length > 0 ;
215
316
}
0 commit comments