1
1
import { async , ComponentFixture , TestBed } from '@angular/core/testing' ;
2
2
import { Component , ViewChild } from '@angular/core' ;
3
- import { CdkTable } from './data- table' ;
3
+ import { CdkTable } from './table' ;
4
4
import { CollectionViewer , DataSource } from './data-source' ;
5
5
import { BehaviorSubject } from 'rxjs/BehaviorSubject' ;
6
- import { customMatchers } from '../testing/jasmine-matchers' ;
7
6
import { Observable } from 'rxjs/Observable' ;
8
7
import { 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 ' ;
11
10
12
11
describe ( 'CdkTable' , ( ) => {
13
12
let fixture : ComponentFixture < SimpleCdkTableApp > ;
@@ -18,11 +17,8 @@ describe('CdkTable', () => {
18
17
let tableElement : HTMLElement ;
19
18
20
19
beforeEach ( async ( ( ) => {
21
- jasmine . addMatchers ( customMatchers ) ;
22
- jasmine . addMatchers ( tableCustomMatchers ) ;
23
-
24
20
TestBed . configureTestingModule ( {
25
- imports : [ CdkDataTableModule ] ,
21
+ imports : [ CdkTableModule ] ,
26
22
declarations : [
27
23
SimpleCdkTableApp ,
28
24
DynamicDataSourceCdkTableApp ,
@@ -82,14 +78,18 @@ describe('CdkTable', () => {
82
78
} ) ;
83
79
84
80
it ( 'with the right accessibility roles' , ( ) => {
85
- expect ( tableElement ) . toBeRole ( 'grid' ) ;
81
+ expect ( tableElement . getAttribute ( 'role' ) ) . toBe ( 'grid' ) ;
86
82
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
+ } ) ;
89
87
90
88
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
+ } ) ;
93
93
} ) ;
94
94
} ) ;
95
95
} ) ;
@@ -105,7 +105,7 @@ describe('CdkTable', () => {
105
105
fixture = TestBed . createComponent ( CustomRoleCdkTableApp ) ;
106
106
fixture . detectChanges ( ) ;
107
107
108
- expect ( fixture . nativeElement . querySelector ( 'cdk-table' ) ) . toBeRole ( 'treegrid' ) ;
108
+ expect ( fixture . nativeElement . querySelector ( 'cdk-table' ) . getAttribute ( 'role' ) ) . toBe ( 'treegrid' ) ;
109
109
} ) ;
110
110
111
111
it ( 'should re-render the rows when the data changes' , ( ) => {
@@ -271,7 +271,7 @@ describe('CdkTable', () => {
271
271
expect ( dataSource . data . length ) . toBe ( 3 ) ;
272
272
273
273
let data = dataSource . data ;
274
- expect ( tableElement ) . toMatchTableContent ( [
274
+ expectTableToMatchContent ( tableElement , [
275
275
[ 'Column A' , 'Column B' , 'Column C' ] ,
276
276
[ data [ 0 ] . a , data [ 0 ] . b , data [ 0 ] . c ] ,
277
277
[ data [ 1 ] . a , data [ 1 ] . b , data [ 1 ] . c ] ,
@@ -284,7 +284,7 @@ describe('CdkTable', () => {
284
284
fixture . detectChanges ( ) ;
285
285
286
286
data = dataSource . data ;
287
- expect ( tableElement ) . toMatchTableContent ( [
287
+ expectTableToMatchContent ( tableElement , [
288
288
[ 'Column A' , 'Column B' , 'Column C' ] ,
289
289
[ data [ 0 ] . a , data [ 0 ] . b , data [ 0 ] . c ] ,
290
290
[ data [ 1 ] . a , data [ 1 ] . b , data [ 1 ] . c ] ,
@@ -303,7 +303,7 @@ describe('CdkTable', () => {
303
303
304
304
// Expect that the component has no data source and the table element reflects empty data.
305
305
expect ( component . dataSource ) . toBe ( undefined ) ;
306
- expect ( tableElement ) . toMatchTableContent ( [
306
+ expectTableToMatchContent ( tableElement , [
307
307
[ 'Column A' ]
308
308
] ) ;
309
309
@@ -314,7 +314,7 @@ describe('CdkTable', () => {
314
314
expect ( dynamicDataSource . isConnected ) . toBe ( true ) ;
315
315
316
316
let data = component . dataSource . data ;
317
- expect ( tableElement ) . toMatchTableContent ( [
317
+ expectTableToMatchContent ( tableElement , [
318
318
[ 'Column A' ] ,
319
319
[ data [ 0 ] . a ] ,
320
320
[ data [ 1 ] . a ] ,
@@ -327,7 +327,7 @@ describe('CdkTable', () => {
327
327
328
328
// Expect that the old data source has been disconnected.
329
329
expect ( dynamicDataSource . isConnected ) . toBe ( false ) ;
330
- expect ( tableElement ) . toMatchTableContent ( [
330
+ expectTableToMatchContent ( tableElement , [
331
331
[ 'Column A' ]
332
332
] ) ;
333
333
} ) ;
@@ -418,7 +418,7 @@ describe('CdkTable', () => {
418
418
expect ( dataSource . data . length ) . toBe ( 3 ) ;
419
419
420
420
let data = dataSource . data ;
421
- expect ( tableElement ) . toMatchTableContent ( [
421
+ expectTableToMatchContent ( tableElement , [
422
422
[ 'Column A' , 'Column B' , 'Column C' ] ,
423
423
[ data [ 0 ] . a , data [ 0 ] . b , data [ 0 ] . c ] ,
424
424
[ data [ 1 ] . a , data [ 1 ] . b , data [ 1 ] . c ] ,
@@ -433,7 +433,7 @@ describe('CdkTable', () => {
433
433
dataSource . data . forEach ( rowData => changedTableContent . push ( [ rowData . c , rowData . b ] ) ) ;
434
434
435
435
data = dataSource . data ;
436
- expect ( tableElement ) . toMatchTableContent ( [
436
+ expectTableToMatchContent ( tableElement , [
437
437
[ 'Column C' , 'Column B' ] ,
438
438
[ data [ 0 ] . c , data [ 0 ] . b ] ,
439
439
[ data [ 1 ] . c , data [ 1 ] . b ] ,
@@ -646,50 +646,36 @@ function getHeaderCells(tableElement: Element): Element[] {
646
646
return getElements ( getHeaderRow ( tableElement ) , '.cdk-header-cell' ) ;
647
647
}
648
648
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
+ }
670
658
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
+ } ) ;
680
667
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' ) ) ;
694
680
}
695
- } ;
681
+ }
0 commit comments