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. */