@@ -95,9 +95,9 @@ describe('CdkTree', () => {
95
95
it ( 'with the right accessibility roles' , ( ) => {
96
96
expect ( treeElement . getAttribute ( 'role' ) ) . toBe ( 'tree' ) ;
97
97
98
- getNodes ( treeElement ) . forEach ( node => {
99
- expect ( node . getAttribute ( 'role' ) ) . toBe ( 'treeitem' ) ;
100
- } ) ;
98
+ expect ( getNodes ( treeElement ) . every ( node => {
99
+ return node . getAttribute ( 'role' ) === 'treeitem' ;
100
+ } ) ) . toBe ( true ) ;
101
101
} ) ;
102
102
103
103
it ( 'with the right data' , ( ) => {
@@ -469,6 +469,15 @@ describe('CdkTree', () => {
469
469
expect ( changedNodes [ 2 ] . getAttribute ( 'initialIndex' ) ) . toBe ( null ) ;
470
470
} ) ;
471
471
} ) ;
472
+
473
+ it ( 'should pick up indirect descendant node definitions' , ( ) => {
474
+ configureCdkTreeTestingModule ( [ SimpleCdkTreeAppWithIndirectNodes ] ) ;
475
+ const fixture = TestBed . createComponent ( SimpleCdkTreeAppWithIndirectNodes ) ;
476
+ fixture . detectChanges ( ) ;
477
+ treeElement = fixture . nativeElement . querySelector ( 'cdk-tree' ) ;
478
+
479
+ expect ( getNodes ( treeElement ) . length ) . toBe ( 3 ) ;
480
+ } ) ;
472
481
} ) ;
473
482
474
483
describe ( 'nested tree' , ( ) => {
@@ -502,9 +511,9 @@ describe('CdkTree', () => {
502
511
it ( 'with the right accessibility roles' , ( ) => {
503
512
expect ( treeElement . getAttribute ( 'role' ) ) . toBe ( 'tree' ) ;
504
513
505
- getNodes ( treeElement ) . forEach ( node => {
506
- expect ( node . getAttribute ( 'role' ) ) . toBe ( 'treeitem' ) ;
507
- } ) ;
514
+ expect ( getNodes ( treeElement ) . every ( node => {
515
+ return node . getAttribute ( 'role' ) === 'treeitem' ;
516
+ } ) ) . toBe ( true ) ;
508
517
} ) ;
509
518
510
519
it ( 'with the right data' , ( ) => {
@@ -827,9 +836,9 @@ describe('CdkTree', () => {
827
836
getNodes ( initialNodes [ 0 ] ) . forEach ( ( node : Element , index : number ) => {
828
837
node . setAttribute ( 'initialIndex' , `c${ index } ` ) ;
829
838
} ) ;
830
- getNodes ( initialNodes [ 0 ] ) . forEach ( ( node , index ) => {
831
- expect ( node . getAttribute ( 'initialIndex' ) ) . toBe ( `c${ index } ` ) ;
832
- } ) ;
839
+ expect ( getNodes ( initialNodes [ 0 ] ) . every ( ( node , index ) => {
840
+ return node . getAttribute ( 'initialIndex' ) === `c${ index } ` ;
841
+ } ) ) . toBe ( true ) ;
833
842
}
834
843
835
844
function mutateChildren ( parent : TestData ) {
@@ -965,10 +974,8 @@ describe('CdkTree', () => {
965
974
966
975
const depthElements = Array . from ( treeElement . querySelectorAll ( '.tree-test-level' ) ! ) ;
967
976
const expectedLevels = [ '0' , '0' , '1' , '2' , '0' ] ;
968
- depthElements . forEach ( ( element , index ) => {
969
- const actualLevel = element . textContent ! . trim ( ) ;
970
- expect ( actualLevel ) . toBe ( expectedLevels [ index ] ) ;
971
- } ) ;
977
+ const actualLevels = depthElements . map ( element => element . textContent ! . trim ( ) ) ;
978
+ expect ( actualLevels ) . toEqual ( expectedLevels ) ;
972
979
expect ( depthElements . length ) . toBe ( 5 ) ;
973
980
} ) ;
974
981
} ) ;
@@ -1158,6 +1165,22 @@ class SimpleCdkTreeApp {
1158
1165
@ViewChildren ( CdkTreeNodePadding ) paddingNodes : QueryList < CdkTreeNodePadding < TestData > > ;
1159
1166
}
1160
1167
1168
+ @Component ( {
1169
+ template : `
1170
+ <cdk-tree [dataSource]="dataSource" [treeControl]="treeControl">
1171
+ <ng-container [ngSwitch]="true">
1172
+ <cdk-tree-node *cdkTreeNodeDef="let node" class="customNodeClass"
1173
+ cdkTreeNodePadding [cdkTreeNodePaddingIndent]="indent"
1174
+ cdkTreeNodeToggle>
1175
+ {{node.pizzaTopping}} - {{node.pizzaCheese}} + {{node.pizzaBase}}
1176
+ </cdk-tree-node>
1177
+ </ng-container>
1178
+ </cdk-tree>
1179
+ `
1180
+ } )
1181
+ class SimpleCdkTreeAppWithIndirectNodes extends SimpleCdkTreeApp {
1182
+ }
1183
+
1161
1184
@Component ( {
1162
1185
template : `
1163
1186
<cdk-tree [dataSource]="dataSource" [treeControl]="treeControl">
0 commit comments