1
- import { DOWN_ARROW , SPACE , UP_ARROW } from '@angular/cdk/keycodes' ;
1
+ import { DOWN_ARROW , SPACE , ENTER , UP_ARROW } from '@angular/cdk/keycodes' ;
2
2
import { Platform } from '@angular/cdk/platform' ;
3
3
import { createKeyboardEvent , dispatchFakeEvent } from '@angular/cdk/testing' ;
4
4
import { Component , DebugElement } from '@angular/core' ;
@@ -188,10 +188,9 @@ describe('MatSelectionList without forms', () => {
188
188
} ) ;
189
189
190
190
it ( 'should be able to use keyboard select with SPACE' , ( ) => {
191
- let testListItem = listOptions [ 1 ] . nativeElement as HTMLElement ;
192
- let SPACE_EVENT : KeyboardEvent =
193
- createKeyboardEvent ( 'keydown' , SPACE , testListItem ) ;
194
- let selectList =
191
+ const testListItem = listOptions [ 1 ] . nativeElement as HTMLElement ;
192
+ const SPACE_EVENT : KeyboardEvent = createKeyboardEvent ( 'keydown' , SPACE , testListItem ) ;
193
+ const selectList =
195
194
selectionList . injector . get < MatSelectionList > ( MatSelectionList ) . selectedOptions ;
196
195
expect ( selectList . selected . length ) . toBe ( 0 ) ;
197
196
@@ -201,6 +200,23 @@ describe('MatSelectionList without forms', () => {
201
200
fixture . detectChanges ( ) ;
202
201
203
202
expect ( selectList . selected . length ) . toBe ( 1 ) ;
203
+ expect ( SPACE_EVENT . defaultPrevented ) . toBe ( true ) ;
204
+ } ) ;
205
+
206
+ it ( 'should be able to select an item using ENTER' , ( ) => {
207
+ const testListItem = listOptions [ 1 ] . nativeElement as HTMLElement ;
208
+ const ENTER_EVENT : KeyboardEvent = createKeyboardEvent ( 'keydown' , ENTER , testListItem ) ;
209
+ const selectList =
210
+ selectionList . injector . get < MatSelectionList > ( MatSelectionList ) . selectedOptions ;
211
+ expect ( selectList . selected . length ) . toBe ( 0 ) ;
212
+
213
+ dispatchFakeEvent ( testListItem , 'focus' ) ;
214
+ selectionList . componentInstance . _keydown ( ENTER_EVENT ) ;
215
+
216
+ fixture . detectChanges ( ) ;
217
+
218
+ expect ( selectList . selected . length ) . toBe ( 1 ) ;
219
+ expect ( ENTER_EVENT . defaultPrevented ) . toBe ( true ) ;
204
220
} ) ;
205
221
206
222
it ( 'should restore focus if active option is destroyed' , ( ) => {
0 commit comments