1- import { DOWN_ARROW , SPACE , UP_ARROW } from '@angular/cdk/keycodes' ;
1+ import { DOWN_ARROW , SPACE , ENTER , UP_ARROW } from '@angular/cdk/keycodes' ;
22import { Platform } from '@angular/cdk/platform' ;
33import { createKeyboardEvent , dispatchFakeEvent } from '@angular/cdk/testing' ;
44import { Component , DebugElement } from '@angular/core' ;
@@ -188,10 +188,9 @@ describe('MatSelectionList without forms', () => {
188188 } ) ;
189189
190190 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 =
195194 selectionList . injector . get < MatSelectionList > ( MatSelectionList ) . selectedOptions ;
196195 expect ( selectList . selected . length ) . toBe ( 0 ) ;
197196
@@ -201,6 +200,23 @@ describe('MatSelectionList without forms', () => {
201200 fixture . detectChanges ( ) ;
202201
203202 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 ) ;
204220 } ) ;
205221
206222 it ( 'should restore focus if active option is destroyed' , ( ) => {
0 commit comments