@@ -23,21 +23,21 @@ describe('MatCalendarBody', () => {
23
23
let fixture : ComponentFixture < StandardCalendarBody > ;
24
24
let testComponent : StandardCalendarBody ;
25
25
let calendarBodyNativeElement : Element ;
26
- let rowEls : NodeListOf < Element > ;
27
- let labelEls : NodeListOf < Element > ;
28
- let cellEls : NodeListOf < Element > ;
26
+ let rowEls : Element [ ] ;
27
+ let labelEls : Element [ ] ;
28
+ let cellEls : Element [ ] ;
29
29
30
- let refreshElementLists = ( ) => {
31
- rowEls = calendarBodyNativeElement . querySelectorAll ( 'tr' ) ;
32
- labelEls = calendarBodyNativeElement . querySelectorAll ( '.mat-calendar-body-label' ) ;
33
- cellEls = calendarBodyNativeElement . querySelectorAll ( '.mat-calendar-body-cell' ) ;
34
- } ;
30
+ function refreshElementLists ( ) {
31
+ rowEls = Array . from ( calendarBodyNativeElement . querySelectorAll ( 'tr' ) ) ;
32
+ labelEls = Array . from ( calendarBodyNativeElement . querySelectorAll ( '.mat-calendar-body-label' ) ) ;
33
+ cellEls = Array . from ( calendarBodyNativeElement . querySelectorAll ( '.mat-calendar-body-cell' ) ) ;
34
+ }
35
35
36
36
beforeEach ( ( ) => {
37
37
fixture = TestBed . createComponent ( StandardCalendarBody ) ;
38
38
fixture . detectChanges ( ) ;
39
39
40
- let calendarBodyDebugElement = fixture . debugElement . query ( By . directive ( MatCalendarBody ) ) ;
40
+ const calendarBodyDebugElement = fixture . debugElement . query ( By . directive ( MatCalendarBody ) ) ;
41
41
calendarBodyNativeElement = calendarBodyDebugElement . nativeElement ;
42
42
testComponent = fixture . componentInstance ;
43
43
@@ -51,17 +51,26 @@ describe('MatCalendarBody', () => {
51
51
} ) ;
52
52
53
53
it ( 'highlights today' , ( ) => {
54
- let todayCell = calendarBodyNativeElement . querySelector ( '.mat-calendar-body-today' ) ! ;
54
+ const todayCell = calendarBodyNativeElement . querySelector ( '.mat-calendar-body-today' ) ! ;
55
55
expect ( todayCell ) . not . toBeNull ( ) ;
56
56
expect ( todayCell . innerHTML . trim ( ) ) . toBe ( '3' ) ;
57
57
} ) ;
58
58
59
59
it ( 'highlights selected' , ( ) => {
60
- let selectedCell = calendarBodyNativeElement . querySelector ( '.mat-calendar-body-selected' ) ! ;
60
+ const selectedCell = calendarBodyNativeElement . querySelector ( '.mat-calendar-body-selected' ) ! ;
61
61
expect ( selectedCell ) . not . toBeNull ( ) ;
62
62
expect ( selectedCell . innerHTML . trim ( ) ) . toBe ( '4' ) ;
63
63
} ) ;
64
64
65
+ it ( 'should set aria-selected correctly' , ( ) => {
66
+ const selectedCells = cellEls . filter ( c => c . getAttribute ( 'aria-selected' ) === 'true' ) ;
67
+ const deselectedCells = cellEls . filter ( c => c . getAttribute ( 'aria-selected' ) === 'false' ) ;
68
+
69
+ expect ( selectedCells . length ) . toBe ( 1 , 'Expected one cell to be marked as selected.' ) ;
70
+ expect ( deselectedCells . length )
71
+ . toBe ( cellEls . length - 1 , 'Expected remaining cells to be marked as deselected.' ) ;
72
+ } ) ;
73
+
65
74
it ( 'places label in first row if space is available' , ( ) => {
66
75
testComponent . rows [ 0 ] = testComponent . rows [ 0 ] . slice ( 3 ) ;
67
76
testComponent . rows = testComponent . rows . slice ( ) ;
@@ -77,7 +86,7 @@ describe('MatCalendarBody', () => {
77
86
} ) ;
78
87
79
88
it ( 'cell should be selected on click' , ( ) => {
80
- let todayElement =
89
+ const todayElement =
81
90
calendarBodyNativeElement . querySelector ( '.mat-calendar-body-today' ) as HTMLElement ;
82
91
todayElement . click ( ) ;
83
92
fixture . detectChanges ( ) ;
@@ -96,28 +105,28 @@ describe('MatCalendarBody', () => {
96
105
let fixture : ComponentFixture < CalendarBodyWithDisabledCells > ;
97
106
let testComponent : CalendarBodyWithDisabledCells ;
98
107
let calendarBodyNativeElement : Element ;
99
- let cellEls : NodeListOf < Element > ;
108
+ let cellEls : HTMLElement [ ] ;
100
109
101
110
beforeEach ( ( ) => {
102
111
fixture = TestBed . createComponent ( CalendarBodyWithDisabledCells ) ;
103
112
fixture . detectChanges ( ) ;
104
113
105
- let calendarBodyDebugElement = fixture . debugElement . query ( By . directive ( MatCalendarBody ) ) ;
114
+ const calendarBodyDebugElement = fixture . debugElement . query ( By . directive ( MatCalendarBody ) ) ;
106
115
calendarBodyNativeElement = calendarBodyDebugElement . nativeElement ;
107
116
testComponent = fixture . componentInstance ;
108
- cellEls = calendarBodyNativeElement . querySelectorAll ( '.mat-calendar-body-cell' ) ;
117
+ cellEls = Array . from ( calendarBodyNativeElement . querySelectorAll ( '.mat-calendar-body-cell' ) ) ;
109
118
} ) ;
110
119
111
120
it ( 'should only allow selection of disabled cells when allowDisabledSelection is true' , ( ) => {
112
- ( cellEls [ 0 ] as HTMLElement ) . click ( ) ;
121
+ cellEls [ 0 ] . click ( ) ;
113
122
fixture . detectChanges ( ) ;
114
123
115
124
expect ( testComponent . selected ) . toBeFalsy ( ) ;
116
125
117
126
testComponent . allowDisabledSelection = true ;
118
127
fixture . detectChanges ( ) ;
119
128
120
- ( cellEls [ 0 ] as HTMLElement ) . click ( ) ;
129
+ cellEls [ 0 ] . click ( ) ;
121
130
fixture . detectChanges ( ) ;
122
131
123
132
expect ( testComponent . selected ) . toBe ( 1 ) ;
0 commit comments