@@ -50,11 +50,11 @@ describe('MdProgressSpinner', () => {
5050 it ( 'should set the value to undefined when the mode is set to indeterminate' , ( ) => {
5151 let fixture = TestBed . createComponent ( ProgressSpinnerWithValueAndBoundMode ) ;
5252 let progressElement = fixture . debugElement . query ( By . css ( 'md-progress-spinner' ) ) ;
53- fixture . debugElement . componentInstance . mode = 'determinate' ;
53+ fixture . componentInstance . mode = 'determinate' ;
5454 fixture . detectChanges ( ) ;
5555
5656 expect ( progressElement . componentInstance . value ) . toBe ( 50 ) ;
57- fixture . debugElement . componentInstance . mode = 'indeterminate' ;
57+ fixture . componentInstance . mode = 'indeterminate' ;
5858 fixture . detectChanges ( ) ;
5959 expect ( progressElement . componentInstance . value ) . toBe ( undefined ) ;
6060 } ) ;
@@ -89,7 +89,7 @@ describe('MdProgressSpinner', () => {
8989 let progressElement = fixture . debugElement . query ( By . css ( 'md-progress-spinner' ) ) ;
9090 expect ( progressElement . componentInstance . interdeterminateInterval ) . toBeTruthy ( ) ;
9191
92- fixture . debugElement . componentInstance . isHidden = true ;
92+ fixture . componentInstance . isHidden = true ;
9393 fixture . detectChanges ( ) ;
9494 expect ( progressElement . componentInstance . interdeterminateInterval ) . toBeFalsy ( ) ;
9595 } ) ;
@@ -102,7 +102,7 @@ describe('MdProgressSpinner', () => {
102102
103103 expect ( progressElement . componentInstance . interdeterminateInterval ) . toBeTruthy ( ) ;
104104
105- fixture . debugElement . componentInstance . isHidden = true ;
105+ fixture . componentInstance . isHidden = true ;
106106 fixture . detectChanges ( ) ;
107107
108108 expect ( progressElement . componentInstance . interdeterminateInterval ) . toBeFalsy ( ) ;
@@ -116,7 +116,7 @@ describe('MdProgressSpinner', () => {
116116
117117 expect ( progressElement . nativeElement . classList ) . toContain ( 'mat-primary' ) ;
118118
119- fixture . debugElement . componentInstance . color = 'accent' ;
119+ fixture . componentInstance . color = 'accent' ;
120120 fixture . detectChanges ( ) ;
121121
122122 expect ( progressElement . nativeElement . classList ) . toContain ( 'mat-accent' ) ;
@@ -131,13 +131,30 @@ describe('MdProgressSpinner', () => {
131131
132132 expect ( progressElement . nativeElement . classList ) . toContain ( 'mat-primary' ) ;
133133
134- fixture . debugElement . componentInstance . color = 'accent' ;
134+ fixture . componentInstance . color = 'accent' ;
135135 fixture . detectChanges ( ) ;
136136
137137 expect ( progressElement . nativeElement . classList ) . toContain ( 'mat-accent' ) ;
138138 expect ( progressElement . nativeElement . classList ) . not . toContain ( 'mat-primary' ) ;
139139 } ) ;
140140
141+ it ( 'should re-render the circle when switching from indeterminate to determinate mode' , ( ) => {
142+ let fixture = TestBed . createComponent ( ProgressSpinnerWithValueAndBoundMode ) ;
143+ let progressElement = fixture . debugElement . query ( By . css ( 'md-progress-spinner' ) ) . nativeElement ;
144+
145+ fixture . componentInstance . mode = 'indeterminate' ;
146+ fixture . detectChanges ( ) ;
147+
148+ let path = progressElement . querySelector ( 'path' ) ;
149+ let oldDimesions = path . getAttribute ( 'd' ) ;
150+
151+ fixture . componentInstance . mode = 'determinate' ;
152+ fixture . detectChanges ( ) ;
153+
154+ expect ( path . getAttribute ( 'd' ) ) . not
155+ . toBe ( oldDimesions , 'Expected circle dimensions to have changed.' ) ;
156+ } ) ;
157+
141158} ) ;
142159
143160
@@ -148,14 +165,14 @@ class BasicProgressSpinner { }
148165class IndeterminateProgressSpinner { }
149166
150167@Component ( { template : '<md-progress-spinner value="50" [mode]="mode"></md-progress-spinner>' } )
151- class ProgressSpinnerWithValueAndBoundMode { }
168+ class ProgressSpinnerWithValueAndBoundMode { mode = 'indeterminate' ; }
152169
153170@Component ( { template : `
154171 <md-progress-spinner mode="indeterminate" *ngIf="!isHidden"></md-progress-spinner>` } )
155- class IndeterminateProgressSpinnerWithNgIf { }
172+ class IndeterminateProgressSpinnerWithNgIf { isHidden = false ; }
156173
157174@Component ( { template : `<md-spinner *ngIf="!isHidden"></md-spinner>` } )
158- class SpinnerWithNgIf { }
175+ class SpinnerWithNgIf { isHidden = false ; }
159176
160177@Component ( { template : `<md-spinner [color]="color"></md-spinner>` } )
161178class SpinnerWithColor { color : string = 'primary' ; }
0 commit comments