11import { async , ComponentFixture , TestBed } from '@angular/core/testing' ;
22import { Component , ViewChild } from '@angular/core' ;
3- import { CdkTable } from './data- table' ;
3+ import { CdkTable } from './table' ;
44import { CollectionViewer , DataSource } from './data-source' ;
55import { BehaviorSubject } from 'rxjs/BehaviorSubject' ;
6- import { customMatchers } from '../testing/jasmine-matchers' ;
76import { Observable } from 'rxjs/Observable' ;
87import { combineLatest } from 'rxjs/observable/combineLatest' ;
9- import { map } from '../rxjs /index' ;
10- import { CdkDataTableModule } from './index ' ;
8+ import { CdkTableModule } from './index' ;
9+ import { map } from 'rxjs/operator/map ' ;
1110
1211describe ( 'CdkTable' , ( ) => {
1312 let fixture : ComponentFixture < SimpleCdkTableApp > ;
@@ -18,11 +17,8 @@ describe('CdkTable', () => {
1817 let tableElement : HTMLElement ;
1918
2019 beforeEach ( async ( ( ) => {
21- jasmine . addMatchers ( customMatchers ) ;
22- jasmine . addMatchers ( tableCustomMatchers ) ;
23-
2420 TestBed . configureTestingModule ( {
25- imports : [ CdkDataTableModule ] ,
21+ imports : [ CdkTableModule ] ,
2622 declarations : [
2723 SimpleCdkTableApp ,
2824 DynamicDataSourceCdkTableApp ,
@@ -82,14 +78,18 @@ describe('CdkTable', () => {
8278 } ) ;
8379
8480 it ( 'with the right accessibility roles' , ( ) => {
85- expect ( tableElement ) . toBeRole ( 'grid' ) ;
81+ expect ( tableElement . getAttribute ( 'role' ) ) . toBe ( 'grid' ) ;
8682
87- expect ( getHeaderRow ( tableElement ) ) . toBeRole ( 'row' ) ;
88- getHeaderCells ( tableElement ) . forEach ( cell => expect ( cell ) . toBeRole ( 'columnheader' ) ) ;
83+ expect ( getHeaderRow ( tableElement ) . getAttribute ( 'role' ) ) . toBe ( 'row' ) ;
84+ getHeaderCells ( tableElement ) . forEach ( cell => {
85+ expect ( cell . getAttribute ( 'role' ) ) . toBe ( 'columnheader' ) ;
86+ } ) ;
8987
9088 getRows ( tableElement ) . forEach ( row => {
91- expect ( row ) . toBeRole ( 'row' ) ;
92- getCells ( row ) . forEach ( cell => expect ( cell ) . toBeRole ( 'gridcell' ) ) ;
89+ expect ( row . getAttribute ( 'role' ) ) . toBe ( 'row' ) ;
90+ getCells ( row ) . forEach ( cell => {
91+ expect ( cell . getAttribute ( 'role' ) ) . toBe ( 'gridcell' ) ;
92+ } ) ;
9393 } ) ;
9494 } ) ;
9595 } ) ;
@@ -105,7 +105,7 @@ describe('CdkTable', () => {
105105 fixture = TestBed . createComponent ( CustomRoleCdkTableApp ) ;
106106 fixture . detectChanges ( ) ;
107107
108- expect ( fixture . nativeElement . querySelector ( 'cdk-table' ) ) . toBeRole ( 'treegrid' ) ;
108+ expect ( fixture . nativeElement . querySelector ( 'cdk-table' ) . getAttribute ( 'role' ) ) . toBe ( 'treegrid' ) ;
109109 } ) ;
110110
111111 it ( 'should re-render the rows when the data changes' , ( ) => {
@@ -271,7 +271,7 @@ describe('CdkTable', () => {
271271 expect ( dataSource . data . length ) . toBe ( 3 ) ;
272272
273273 let data = dataSource . data ;
274- expect ( tableElement ) . toMatchTableContent ( [
274+ expectTableToMatchContent ( tableElement , [
275275 [ 'Column A' , 'Column B' , 'Column C' ] ,
276276 [ data [ 0 ] . a , data [ 0 ] . b , data [ 0 ] . c ] ,
277277 [ data [ 1 ] . a , data [ 1 ] . b , data [ 1 ] . c ] ,
@@ -284,7 +284,7 @@ describe('CdkTable', () => {
284284 fixture . detectChanges ( ) ;
285285
286286 data = dataSource . data ;
287- expect ( tableElement ) . toMatchTableContent ( [
287+ expectTableToMatchContent ( tableElement , [
288288 [ 'Column A' , 'Column B' , 'Column C' ] ,
289289 [ data [ 0 ] . a , data [ 0 ] . b , data [ 0 ] . c ] ,
290290 [ data [ 1 ] . a , data [ 1 ] . b , data [ 1 ] . c ] ,
@@ -303,7 +303,7 @@ describe('CdkTable', () => {
303303
304304 // Expect that the component has no data source and the table element reflects empty data.
305305 expect ( component . dataSource ) . toBe ( undefined ) ;
306- expect ( tableElement ) . toMatchTableContent ( [
306+ expectTableToMatchContent ( tableElement , [
307307 [ 'Column A' ]
308308 ] ) ;
309309
@@ -314,7 +314,7 @@ describe('CdkTable', () => {
314314 expect ( dynamicDataSource . isConnected ) . toBe ( true ) ;
315315
316316 let data = component . dataSource . data ;
317- expect ( tableElement ) . toMatchTableContent ( [
317+ expectTableToMatchContent ( tableElement , [
318318 [ 'Column A' ] ,
319319 [ data [ 0 ] . a ] ,
320320 [ data [ 1 ] . a ] ,
@@ -327,7 +327,7 @@ describe('CdkTable', () => {
327327
328328 // Expect that the old data source has been disconnected.
329329 expect ( dynamicDataSource . isConnected ) . toBe ( false ) ;
330- expect ( tableElement ) . toMatchTableContent ( [
330+ expectTableToMatchContent ( tableElement , [
331331 [ 'Column A' ]
332332 ] ) ;
333333 } ) ;
@@ -418,7 +418,7 @@ describe('CdkTable', () => {
418418 expect ( dataSource . data . length ) . toBe ( 3 ) ;
419419
420420 let data = dataSource . data ;
421- expect ( tableElement ) . toMatchTableContent ( [
421+ expectTableToMatchContent ( tableElement , [
422422 [ 'Column A' , 'Column B' , 'Column C' ] ,
423423 [ data [ 0 ] . a , data [ 0 ] . b , data [ 0 ] . c ] ,
424424 [ data [ 1 ] . a , data [ 1 ] . b , data [ 1 ] . c ] ,
@@ -433,7 +433,7 @@ describe('CdkTable', () => {
433433 dataSource . data . forEach ( rowData => changedTableContent . push ( [ rowData . c , rowData . b ] ) ) ;
434434
435435 data = dataSource . data ;
436- expect ( tableElement ) . toMatchTableContent ( [
436+ expectTableToMatchContent ( tableElement , [
437437 [ 'Column C' , 'Column B' ] ,
438438 [ data [ 0 ] . c , data [ 0 ] . b ] ,
439439 [ data [ 1 ] . c , data [ 1 ] . b ] ,
@@ -646,50 +646,36 @@ function getHeaderCells(tableElement: Element): Element[] {
646646 return getElements ( getHeaderRow ( tableElement ) , '.cdk-header-cell' ) ;
647647}
648648
649- const tableCustomMatchers : jasmine . CustomMatcherFactories = {
650- toMatchTableContent : ( ) => {
651- return {
652- compare : function ( tableElement : Element , expectedTableContent : any [ ] ) {
653- const missedExpectations : string [ ] = [ ] ;
654- function checkCellContent ( cell : Element , expectedTextContent : string ) {
655- const actualTextContent = cell . textContent ! . trim ( ) ;
656- if ( actualTextContent !== expectedTextContent ) {
657- missedExpectations . push (
658- `Expected cell contents to be ${ expectedTextContent } but was ${ actualTextContent } ` ) ;
659- }
660- }
661-
662- // Check header cells
663- const expectedHeaderContent = expectedTableContent . shift ( ) ;
664- getHeaderCells ( tableElement ) . forEach ( ( cell , index ) => {
665- const expected = expectedHeaderContent ?
666- expectedHeaderContent [ index ] :
667- null ;
668- checkCellContent ( cell , expected ) ;
669- } ) ;
649+ function expectTableToMatchContent ( tableElement : Element , expectedTableContent : any [ ] ) {
650+ const missedExpectations : string [ ] = [ ] ;
651+ function checkCellContent ( cell : Element , expectedTextContent : string ) {
652+ const actualTextContent = cell . textContent ! . trim ( ) ;
653+ if ( actualTextContent !== expectedTextContent ) {
654+ missedExpectations . push (
655+ `Expected cell contents to be ${ expectedTextContent } but was ${ actualTextContent } ` ) ;
656+ }
657+ }
670658
671- // Check data row cells
672- getRows ( tableElement ) . forEach ( ( row , rowIndex ) => {
673- getCells ( row ) . forEach ( ( cell , cellIndex ) => {
674- const expected = expectedHeaderContent ?
675- expectedTableContent [ rowIndex ] [ cellIndex ] :
676- null ;
677- checkCellContent ( cell , expected ) ;
678- } ) ;
679- } ) ;
659+ // Check header cells
660+ const expectedHeaderContent = expectedTableContent . shift ( ) ;
661+ getHeaderCells ( tableElement ) . forEach ( ( cell , index ) => {
662+ const expected = expectedHeaderContent ?
663+ expectedHeaderContent [ index ] :
664+ null ;
665+ checkCellContent ( cell , expected ) ;
666+ } ) ;
680667
681- if ( missedExpectations . length ) {
682- return {
683- pass : false ,
684- message : missedExpectations . join ( '\n' )
685- } ;
686- }
687-
688- return {
689- pass : true ,
690- message : 'Table contained the right content'
691- } ;
692- }
693- } ;
668+ // Check data row cells
669+ getRows ( tableElement ) . forEach ( ( row , rowIndex ) => {
670+ getCells ( row ) . forEach ( ( cell , cellIndex ) => {
671+ const expected = expectedHeaderContent ?
672+ expectedTableContent [ rowIndex ] [ cellIndex ] :
673+ null ;
674+ checkCellContent ( cell , expected ) ;
675+ } ) ;
676+ } ) ;
677+
678+ if ( missedExpectations . length ) {
679+ fail ( missedExpectations . join ( '\n' ) ) ;
694680 }
695- } ;
681+ }
0 commit comments