@@ -289,18 +289,17 @@ describe('AutoComplete control Input Event Tests', () => {
289
289
zone . runOutsideAngular ( ( ) => zone . onStable . emit ( null ) ) ;
290
290
fixture . detectChanges ( ) ;
291
291
292
- const options = overlayContainerElement . querySelectorAll (
293
- 'mat-option'
294
- ) as NodeListOf < HTMLElement > ;
295
- options . item ( 0 ) . click ( ) ;
296
- tick ( ) ;
297
- fixture . detectChanges ( ) ;
298
-
299
- expect ( spy ) . toHaveBeenCalled ( ) ;
300
- const event = spy . calls . mostRecent ( )
301
- . args [ 0 ] as MatAutocompleteSelectedEvent ;
302
-
303
- expect ( event . option . value ) . toBe ( 'X' ) ;
292
+ fixture . whenStable ( ) . then ( ( ) => {
293
+ const options = overlayContainerElement ?. querySelectorAll (
294
+ 'mat-option'
295
+ ) as NodeListOf < HTMLElement > ;
296
+ ( options [ 1 ] as HTMLElement ) . click ( ) ;
297
+ fixture . detectChanges ( ) ;
298
+ tick ( ) ;
299
+ const event = spy . calls . mostRecent ( )
300
+ . args [ 0 ] as MatAutocompleteSelectedEvent ;
301
+ expect ( event . option . value ) . toBe ( 'Y' ) ;
302
+ } ) ;
304
303
} ) ) ;
305
304
} ) ;
306
305
describe ( 'AutoComplete control Error Tests' , ( ) => {
@@ -347,3 +346,51 @@ describe('AutoComplete control Error Tests', () => {
347
346
) . toBe ( 'Hi, this is me, test error!' ) ;
348
347
} ) ;
349
348
} ) ;
349
+
350
+ describe ( 'AutoComplete control updateFilter function' , ( ) => {
351
+ let fixture : ComponentFixture < AutocompleteControlRenderer > ;
352
+ let component : AutocompleteControlRenderer ;
353
+
354
+ beforeEach ( ( ) => {
355
+ TestBed . configureTestingModule ( {
356
+ declarations : [ componentUT ] ,
357
+ imports : imports ,
358
+ providers : providers ,
359
+ } ) . compileComponents ( ) ;
360
+ } ) ;
361
+
362
+ beforeEach ( ( ) => {
363
+ fixture = TestBed . createComponent ( componentUT ) ;
364
+ component = fixture . componentInstance ;
365
+ } ) ;
366
+
367
+ it ( 'should not filter options on ENTER key press' , ( ) => {
368
+ component . shouldFilter = false ;
369
+ component . options = [ 'X' , 'Y' , 'Z' ] ;
370
+ setupMockStore ( fixture , { uischema, schema, data } ) ;
371
+ getJsonFormsService ( component ) . updateCore (
372
+ Actions . init ( data , schema , uischema )
373
+ ) ;
374
+ component . ngOnInit ( ) ;
375
+ fixture . detectChanges ( ) ;
376
+ component . updateFilter ( { keyCode : 13 } ) ;
377
+ fixture . detectChanges ( ) ;
378
+ expect ( component . shouldFilter ) . toBe ( false ) ;
379
+ } ) ;
380
+
381
+ it ( 'should filter options when a key other than ENTER is pressed' , ( ) => {
382
+ component . shouldFilter = false ;
383
+ component . options = [ 'X' , 'Y' , 'Z' ] ;
384
+ setupMockStore ( fixture , { uischema, schema, data } ) ;
385
+ getJsonFormsService ( component ) . updateCore (
386
+ Actions . init ( data , schema , uischema )
387
+ ) ;
388
+ component . ngOnInit ( ) ;
389
+ fixture . detectChanges ( ) ;
390
+
391
+ component . updateFilter ( { keyCode : 65 } ) ;
392
+ fixture . detectChanges ( ) ;
393
+
394
+ expect ( component . shouldFilter ) . toBe ( true ) ;
395
+ } ) ;
396
+ } ) ;
0 commit comments