@@ -170,6 +170,7 @@ describe('Dialog', () => {
170
170
let dialogRef = dialog . openFromComponent ( PizzaMsg , { viewContainerRef : testViewContainerRef } ) ;
171
171
let afterCloseCallback = jasmine . createSpy ( 'afterClose callback' ) ;
172
172
173
+ viewContainerFixture . detectChanges ( ) ;
173
174
dialogRef . afterClosed ( ) . subscribe ( afterCloseCallback ) ;
174
175
dialogRef . close ( 'Charmander' ) ;
175
176
viewContainerFixture . detectChanges ( ) ;
@@ -179,8 +180,22 @@ describe('Dialog', () => {
179
180
expect ( overlayContainerElement . querySelector ( 'cdk-dialog-container' ) ) . toBeNull ( ) ;
180
181
} ) ) ;
181
182
183
+ it ( 'should only emit the afterCloseEvent once when closed' , fakeAsync ( ( ) => {
184
+ let dialogRef = dialog . openFromComponent ( PizzaMsg , { viewContainerRef : testViewContainerRef } ) ;
185
+ let afterCloseCallback = jasmine . createSpy ( 'afterClose callback' ) ;
186
+
187
+ viewContainerFixture . detectChanges ( ) ;
188
+ dialogRef . afterClosed ( ) . subscribe ( afterCloseCallback ) ;
189
+ dialogRef . close ( ) ;
190
+ viewContainerFixture . detectChanges ( ) ;
191
+ flush ( ) ;
192
+
193
+ expect ( afterCloseCallback ) . toHaveBeenCalledTimes ( 1 ) ;
194
+ } ) ) ;
195
+
182
196
it ( 'should close a dialog and get back a result before it is closed' , fakeAsync ( ( ) => {
183
197
const dialogRef = dialog . openFromComponent ( PizzaMsg , { viewContainerRef : testViewContainerRef } ) ;
198
+ viewContainerFixture . detectChanges ( ) ;
184
199
185
200
// beforeClose should emit before dialog container is destroyed
186
201
const beforeCloseHandler = jasmine . createSpy ( 'beforeClose callback' ) . and . callFake ( ( ) => {
@@ -189,19 +204,18 @@ describe('Dialog', () => {
189
204
} ) ;
190
205
191
206
dialogRef . beforeClose ( ) . subscribe ( beforeCloseHandler ) ;
192
- dialogRef . close ( 'Bulbasaurus ' ) ;
207
+ dialogRef . close ( 'Bulbasaur ' ) ;
193
208
viewContainerFixture . detectChanges ( ) ;
194
209
flush ( ) ;
195
210
196
- expect ( beforeCloseHandler ) . toHaveBeenCalledWith ( 'Bulbasaurus ' ) ;
211
+ expect ( beforeCloseHandler ) . toHaveBeenCalledWith ( 'Bulbasaur ' ) ;
197
212
expect ( overlayContainerElement . querySelector ( 'cdk-dialog-container' ) ) . toBeNull ( ) ;
198
213
} ) ) ;
199
214
200
215
it ( 'should close a dialog via the escape key' , fakeAsync ( ( ) => {
201
- dialog . openFromComponent ( PizzaMsg , {
202
- viewContainerRef : testViewContainerRef
203
- } ) ;
216
+ dialog . openFromComponent ( PizzaMsg , { viewContainerRef : testViewContainerRef } ) ;
204
217
218
+ viewContainerFixture . detectChanges ( ) ;
205
219
dispatchKeyboardEvent ( document . body , 'keydown' , ESCAPE ) ;
206
220
viewContainerFixture . detectChanges ( ) ;
207
221
flush ( ) ;
@@ -235,13 +249,10 @@ describe('Dialog', () => {
235
249
} ) ) ;
236
250
237
251
it ( 'should close when clicking on the overlay backdrop' , fakeAsync ( ( ) => {
238
- dialog . openFromComponent ( PizzaMsg , {
239
- viewContainerRef : testViewContainerRef
240
- } ) ;
241
-
252
+ dialog . openFromComponent ( PizzaMsg , { viewContainerRef : testViewContainerRef } ) ;
242
253
viewContainerFixture . detectChanges ( ) ;
243
254
244
- let backdrop = overlayContainerElement . querySelector ( '.cdk-overlay-backdrop' ) as HTMLElement ;
255
+ const backdrop = overlayContainerElement . querySelector ( '.cdk-overlay-backdrop' ) as HTMLElement ;
245
256
246
257
backdrop . click ( ) ;
247
258
viewContainerFixture . detectChanges ( ) ;
@@ -251,16 +262,12 @@ describe('Dialog', () => {
251
262
} ) ) ;
252
263
253
264
it ( 'should emit the backdropClick stream when clicking on the overlay backdrop' , fakeAsync ( ( ) => {
254
- const dialogRef = dialog . openFromComponent ( PizzaMsg , {
255
- viewContainerRef : testViewContainerRef
256
- } ) ;
257
-
265
+ const dialogRef = dialog . openFromComponent ( PizzaMsg , { viewContainerRef : testViewContainerRef } ) ;
258
266
const spy = jasmine . createSpy ( 'backdropClick spy' ) ;
259
267
dialogRef . backdropClick ( ) . subscribe ( spy ) ;
260
-
261
268
viewContainerFixture . detectChanges ( ) ;
262
269
263
- let backdrop = overlayContainerElement . querySelector ( '.cdk-overlay-backdrop' ) as HTMLElement ;
270
+ const backdrop = overlayContainerElement . querySelector ( '.cdk-overlay-backdrop' ) as HTMLElement ;
264
271
265
272
backdrop . click ( ) ;
266
273
expect ( spy ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -304,7 +311,7 @@ describe('Dialog', () => {
304
311
ContentElementDialog , { viewContainerRef : testViewContainerRef } ) ;
305
312
const spy = jasmine . createSpy ( 'afterAllClosed spy' ) ;
306
313
307
-
314
+ viewContainerFixture . detectChanges ( ) ;
308
315
dialog . afterAllClosed . subscribe ( spy ) ;
309
316
310
317
ref1 . close ( ) ;
@@ -532,8 +539,11 @@ describe('Dialog', () => {
532
539
533
540
it ( 'should close all of the dialogs' , fakeAsync ( ( ) => {
534
541
dialog . openFromComponent ( PizzaMsg ) ;
542
+ viewContainerFixture . detectChanges ( ) ;
535
543
dialog . openFromComponent ( PizzaMsg ) ;
544
+ viewContainerFixture . detectChanges ( ) ;
536
545
dialog . openFromComponent ( PizzaMsg ) ;
546
+ viewContainerFixture . detectChanges ( ) ;
537
547
538
548
expect ( overlayContainerElement . querySelectorAll ( 'cdk-dialog-container' ) . length ) . toBe ( 3 ) ;
539
549
@@ -558,7 +568,9 @@ describe('Dialog', () => {
558
568
559
569
it ( 'should close all dialogs when the user goes forwards/backwards in history' , fakeAsync ( ( ) => {
560
570
dialog . openFromComponent ( PizzaMsg ) ;
571
+ viewContainerFixture . detectChanges ( ) ;
561
572
dialog . openFromComponent ( PizzaMsg ) ;
573
+ viewContainerFixture . detectChanges ( ) ;
562
574
563
575
expect ( overlayContainerElement . querySelectorAll ( 'cdk-dialog-container' ) . length ) . toBe ( 2 ) ;
564
576
@@ -571,7 +583,9 @@ describe('Dialog', () => {
571
583
572
584
it ( 'should close all open dialogs when the location hash changes' , fakeAsync ( ( ) => {
573
585
dialog . openFromComponent ( PizzaMsg ) ;
586
+ viewContainerFixture . detectChanges ( ) ;
574
587
dialog . openFromComponent ( PizzaMsg ) ;
588
+ viewContainerFixture . detectChanges ( ) ;
575
589
576
590
expect ( overlayContainerElement . querySelectorAll ( 'cdk-dialog-container' ) . length ) . toBe ( 2 ) ;
577
591
@@ -622,13 +636,15 @@ describe('Dialog', () => {
622
636
it ( 'should default to null if no data is passed' , ( ) => {
623
637
expect ( ( ) => {
624
638
let dialogRef = dialog . openFromComponent ( DialogWithInjectedData ) ;
639
+ viewContainerFixture . detectChanges ( ) ;
625
640
expect ( dialogRef . componentInstance . data ) . toBeNull ( ) ;
626
641
} ) . not . toThrow ( ) ;
627
642
} ) ;
628
643
} ) ;
629
644
630
645
it ( 'should not keep a reference to the component after the dialog is closed' , fakeAsync ( ( ) => {
631
646
let dialogRef = dialog . openFromComponent ( PizzaMsg ) ;
647
+ viewContainerFixture . detectChanges ( ) ;
632
648
633
649
expect ( dialogRef . componentInstance ) . toBeTruthy ( ) ;
634
650
@@ -977,6 +993,7 @@ describe('Dialog with a parent Dialog', () => {
977
993
978
994
it ( 'should close the top dialog via the escape key' , fakeAsync ( ( ) => {
979
995
childDialog . openFromComponent ( PizzaMsg ) ;
996
+ fixture . detectChanges ( ) ;
980
997
981
998
dispatchKeyboardEvent ( document . body , 'keydown' , ESCAPE ) ;
982
999
fixture . detectChanges ( ) ;
0 commit comments