diff --git a/lib/core/src/lib/datatable/data-column/data-column.component.spec.ts b/lib/core/src/lib/datatable/data-column/data-column.component.spec.ts index 476de8a68c..d299e3ff51 100644 --- a/lib/core/src/lib/datatable/data-column/data-column.component.spec.ts +++ b/lib/core/src/lib/datatable/data-column/data-column.component.spec.ts @@ -15,9 +15,39 @@ * limitations under the License. */ +import { Component, ViewChild } from '@angular/core'; +import { TestBed } from '@angular/core/testing'; import { DataColumnComponent } from './data-column.component'; -describe('DataColumnListComponent', () => { +@Component({ + imports: [DataColumnComponent], + template: ` + + + + ` +}) +class DirectTemplateHostComponent { + @ViewChild(DataColumnComponent) + dataColumn: DataColumnComponent; +} + +@Component({ + imports: [DataColumnComponent], + template: ` + +
+ +
+
+ ` +}) +class NestedTemplateHostComponent { + @ViewChild(DataColumnComponent) + dataColumn: DataColumnComponent; +} + +describe('DataColumnComponent', () => { it('should setup screen reader title for thumbnails', () => { const component = new DataColumnComponent(); component.key = '$thumbnail'; @@ -25,4 +55,20 @@ describe('DataColumnListComponent', () => { component.ngOnInit(); expect(component.srTitle).toBeTruthy(); }); + + describe('template ContentChild selection', () => { + it('should capture a direct ng-template child', () => { + const directFixture = TestBed.createComponent(DirectTemplateHostComponent); + directFixture.detectChanges(); + + expect(directFixture.componentInstance.dataColumn.template).toBeTruthy(); + }); + + it('should not capture a nested descendant ng-template', () => { + const nestedFixture = TestBed.createComponent(NestedTemplateHostComponent); + nestedFixture.detectChanges(); + + expect(nestedFixture.componentInstance.dataColumn.template).toBeFalsy(); + }); + }); }); diff --git a/lib/core/src/lib/datatable/data-column/data-column.component.ts b/lib/core/src/lib/datatable/data-column/data-column.component.ts index e716d6c87b..671b004e46 100644 --- a/lib/core/src/lib/datatable/data-column/data-column.component.ts +++ b/lib/core/src/lib/datatable/data-column/data-column.component.ts @@ -78,7 +78,7 @@ export class DataColumnComponent implements OnInit { @Input() subtitle: string = ''; - @ContentChild(TemplateRef) + @ContentChild(TemplateRef, { descendants: false }) template: any; /** Custom tooltip formatter function. */