1
1
import { Component , ViewChild , ElementRef } from '@angular/core' ;
2
2
import { async , fakeAsync , TestBed , tick , flush , ComponentFixture } from '@angular/core/testing' ;
3
- import { FormsModule , FormGroup , FormBuilder , FormControl , ReactiveFormsModule } from '@angular/forms' ;
3
+ import { FormsModule , FormGroup , FormBuilder , FormControl , ReactiveFormsModule } from '@angular/forms' ;
4
4
import { By } from '@angular/platform-browser' ;
5
5
import { NoopAnimationsModule } from '@angular/platform-browser/animations' ;
6
6
import { IgxDatePickerComponent , IgxDatePickerModule } from './date-picker.component' ;
@@ -206,7 +206,7 @@ describe('IgxDatePicker', () => {
206
206
expect ( input ) . toEqual ( document . activeElement ) ;
207
207
} ) ) ;
208
208
209
- it ( 'When a modal datepicker is closed via outside click, the focus should remain on the input' ,
209
+ it ( 'When a modal datepicker is closed via outside click, the focus should remain on the input' ,
210
210
fakeAsync ( ( ) => {
211
211
const datePickerDom = fixture . debugElement . query ( By . css ( 'igx-date-picker' ) ) ;
212
212
let overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper--modal' ) ;
@@ -230,7 +230,7 @@ describe('IgxDatePicker', () => {
230
230
expect ( input ) . toEqual ( document . activeElement ) ;
231
231
} ) ) ;
232
232
233
- it ( 'When datepicker is closed upon selecting a date, the focus should remain on the input' ,
233
+ it ( 'When datepicker is closed upon selecting a date, the focus should remain on the input' ,
234
234
fakeAsync ( ( ) => {
235
235
const datePickerDom = fixture . debugElement . query ( By . css ( 'igx-date-picker' ) ) ;
236
236
let overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper--modal' ) ;
@@ -332,66 +332,66 @@ describe('IgxDatePicker', () => {
332
332
} ) ) ;
333
333
334
334
it ( 'When datepicker in "dropdown" mode, should focus input on user interaction with Today btn, Cancel btn, Enter Key, Escape key' ,
335
- fakeAsync ( ( ) => {
336
- const fixture = TestBed . createComponent ( IgxDatePickerDropdownButtonsComponent ) ;
337
- fixture . detectChanges ( ) ;
338
- const datePickerDom = fixture . debugElement . query ( By . css ( 'igx-date-picker' ) ) ;
339
- const input = fixture . debugElement . query ( By . directive ( IgxInputDirective ) ) . nativeElement ;
340
- let overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
341
- expect ( overlayToggle . length ) . toEqual ( 0 ) ;
335
+ fakeAsync ( ( ) => {
336
+ const fixture = TestBed . createComponent ( IgxDatePickerDropdownButtonsComponent ) ;
337
+ fixture . detectChanges ( ) ;
338
+ const datePickerDom = fixture . debugElement . query ( By . css ( 'igx-date-picker' ) ) ;
339
+ const input = fixture . debugElement . query ( By . directive ( IgxInputDirective ) ) . nativeElement ;
340
+ let overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
341
+ expect ( overlayToggle . length ) . toEqual ( 0 ) ;
342
342
343
- UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
344
- flush ( ) ;
345
- fixture . detectChanges ( ) ;
346
- const buttons = document . getElementsByClassName ( 'igx-button--flat' ) ;
347
- expect ( buttons . length ) . toEqual ( 2 ) ;
343
+ UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
344
+ flush ( ) ;
345
+ fixture . detectChanges ( ) ;
346
+ const buttons = document . getElementsByClassName ( 'igx-button--flat' ) ;
347
+ expect ( buttons . length ) . toEqual ( 2 ) ;
348
348
349
- // Today btn
350
- const todayBtn = buttons [ 1 ] as HTMLElement ;
351
- expect ( todayBtn . innerText ) . toBe ( 'Today' ) ;
352
- todayBtn . click ( ) ;
353
- tick ( ) ;
354
- fixture . detectChanges ( ) ;
355
- overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
356
- expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
357
- expect ( input ) . toEqual ( document . activeElement ) ;
349
+ // Today btn
350
+ const todayBtn = buttons [ 1 ] as HTMLElement ;
351
+ expect ( todayBtn . innerText ) . toBe ( 'Today' ) ;
352
+ todayBtn . click ( ) ;
353
+ tick ( ) ;
354
+ fixture . detectChanges ( ) ;
355
+ overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
356
+ expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
357
+ expect ( input ) . toEqual ( document . activeElement ) ;
358
358
359
- // Cancel btn
360
- UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
361
- flush ( ) ;
362
- fixture . detectChanges ( ) ;
363
- const cancelBtn = buttons [ 0 ] as HTMLElement ;
364
- expect ( cancelBtn . innerText ) . toBe ( 'Cancel' ) ;
365
- cancelBtn . click ( ) ;
366
- tick ( ) ;
367
- fixture . detectChanges ( ) ;
368
- overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
369
- expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
370
- expect ( input ) . toEqual ( document . activeElement ) ;
359
+ // Cancel btn
360
+ UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
361
+ flush ( ) ;
362
+ fixture . detectChanges ( ) ;
363
+ const cancelBtn = buttons [ 0 ] as HTMLElement ;
364
+ expect ( cancelBtn . innerText ) . toBe ( 'Cancel' ) ;
365
+ cancelBtn . click ( ) ;
366
+ tick ( ) ;
367
+ fixture . detectChanges ( ) ;
368
+ overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
369
+ expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
370
+ expect ( input ) . toEqual ( document . activeElement ) ;
371
371
372
- // Enter key
373
- UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
374
- flush ( ) ;
375
- fixture . detectChanges ( ) ;
376
- document . activeElement . dispatchEvent ( new KeyboardEvent ( 'keydown' , { key : 'Enter' , bubbles : true } ) ) ;
377
- tick ( ) ;
378
- fixture . detectChanges ( ) ;
379
- overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
380
- expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
381
- expect ( input ) . toEqual ( document . activeElement ) ;
372
+ // Enter key
373
+ UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
374
+ flush ( ) ;
375
+ fixture . detectChanges ( ) ;
376
+ document . activeElement . dispatchEvent ( new KeyboardEvent ( 'keydown' , { key : 'Enter' , bubbles : true } ) ) ;
377
+ tick ( ) ;
378
+ fixture . detectChanges ( ) ;
379
+ overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
380
+ expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
381
+ expect ( input ) . toEqual ( document . activeElement ) ;
382
382
383
- // Esc key
384
- UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
385
- flush ( ) ;
386
- fixture . detectChanges ( ) ;
387
- document . activeElement . dispatchEvent ( new KeyboardEvent ( 'keydown' , { key : 'Enter' , bubbles : true } ) ) ;
388
- tick ( ) ;
389
- fixture . detectChanges ( ) ;
383
+ // Esc key
384
+ UIInteractions . triggerKeyDownEvtUponElem ( 'space' , datePickerDom . nativeElement , false ) ;
385
+ flush ( ) ;
386
+ fixture . detectChanges ( ) ;
387
+ document . activeElement . dispatchEvent ( new KeyboardEvent ( 'keydown' , { key : 'Enter' , bubbles : true } ) ) ;
388
+ tick ( ) ;
389
+ fixture . detectChanges ( ) ;
390
390
391
- overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
392
- expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
393
- expect ( input ) . toEqual ( document . activeElement ) ;
394
- } ) ) ;
391
+ overlayToggle = document . getElementsByClassName ( 'igx-overlay__wrapper' ) ;
392
+ expect ( overlayToggle [ 0 ] ) . toEqual ( undefined ) ;
393
+ expect ( input ) . toEqual ( document . activeElement ) ;
394
+ } ) ) ;
395
395
396
396
it ( 'Datepicker week start day (Monday)' , ( ) => {
397
397
const fixture = TestBed . createComponent ( IgxDatePickerWithWeekStartComponent ) ;
@@ -1149,7 +1149,8 @@ describe('IgxDatePicker', () => {
1149
1149
expect ( input ) . toBeDefined ( ) ;
1150
1150
datePicker . isSpinLoop = false ;
1151
1151
1152
- input . nativeElement . focus ( ) ;
1152
+ input . triggerEventHandler ( 'focus' , { } ) ;
1153
+ fixture . detectChanges ( ) ; // bound transformedDate assign
1153
1154
UIInteractions . sendInput ( input , '31-03-19' ) ;
1154
1155
expect ( input . nativeElement . value ) . toBe ( '31-03-19' ) ;
1155
1156
0 commit comments