@@ -87,10 +87,11 @@ describe('MdButtonToggle with forms', () => {
87
87
let buttonToggleInstances : MdButtonToggle [ ] ;
88
88
let testComponent : ButtonToggleGroupWithNgModel ;
89
89
let groupNgModel : NgModel ;
90
+ let buttonToggleLabels : HTMLElement [ ] ;
90
91
91
92
beforeEach ( async ( ( ) => {
92
93
fixture = TestBed . createComponent ( ButtonToggleGroupWithNgModel ) ;
93
-
94
+ fixture . detectChanges ( ) ;
94
95
testComponent = fixture . debugElement . componentInstance ;
95
96
96
97
groupDebugElement = fixture . debugElement . query ( By . directive ( MdButtonToggleGroup ) ) ;
@@ -102,6 +103,8 @@ describe('MdButtonToggle with forms', () => {
102
103
buttonToggleNativeElements =
103
104
buttonToggleDebugElements . map ( debugEl => debugEl . nativeElement ) ;
104
105
buttonToggleInstances = buttonToggleDebugElements . map ( debugEl => debugEl . componentInstance ) ;
106
+ buttonToggleLabels = buttonToggleDebugElements . map (
107
+ debugEl => debugEl . query ( By . css ( 'label' ) ) . nativeElement ) ;
105
108
106
109
fixture . detectChanges ( ) ;
107
110
} ) ) ;
@@ -110,42 +113,13 @@ describe('MdButtonToggle with forms', () => {
110
113
expect ( testComponent . modelValue ) . toBeUndefined ( ) ;
111
114
expect ( testComponent . lastEvent ) . toBeUndefined ( ) ;
112
115
113
- groupInstance . value = 'red' ;
116
+ buttonToggleLabels [ 0 ] . click ( ) ;
114
117
fixture . detectChanges ( ) ;
115
118
116
119
tick ( ) ;
117
120
expect ( testComponent . modelValue ) . toBe ( 'red' ) ;
118
121
expect ( testComponent . lastEvent . value ) . toBe ( 'red' ) ;
119
122
} ) ) ;
120
- } ) ;
121
-
122
- describe ( 'button toggle group with ngModel' , ( ) => {
123
- let fixture : ComponentFixture < ButtonToggleGroupWithNgModel > ;
124
- let groupDebugElement : DebugElement ;
125
- let groupNativeElement : HTMLElement ;
126
- let buttonToggleDebugElements : DebugElement [ ] ;
127
- let buttonToggleNativeElements : HTMLElement [ ] ;
128
- let groupInstance : MdButtonToggleGroup ;
129
- let buttonToggleInstances : MdButtonToggle [ ] ;
130
- let testComponent : ButtonToggleGroupWithNgModel ;
131
- let groupNgModel : NgModel ;
132
-
133
- beforeEach ( async ( ( ) => {
134
- fixture = TestBed . createComponent ( ButtonToggleGroupWithNgModel ) ;
135
- fixture . detectChanges ( ) ;
136
-
137
- testComponent = fixture . debugElement . componentInstance ;
138
-
139
- groupDebugElement = fixture . debugElement . query ( By . directive ( MdButtonToggleGroup ) ) ;
140
- groupNativeElement = groupDebugElement . nativeElement ;
141
- groupInstance = groupDebugElement . injector . get < MdButtonToggleGroup > ( MdButtonToggleGroup ) ;
142
- groupNgModel = groupDebugElement . injector . get < NgModel > ( NgModel ) ;
143
-
144
- buttonToggleDebugElements = fixture . debugElement . queryAll ( By . directive ( MdButtonToggle ) ) ;
145
- buttonToggleNativeElements =
146
- buttonToggleDebugElements . map ( debugEl => debugEl . nativeElement ) ;
147
- buttonToggleInstances = buttonToggleDebugElements . map ( debugEl => debugEl . componentInstance ) ;
148
- } ) ) ;
149
123
150
124
it ( 'should set individual radio names based on the group name' , ( ) => {
151
125
expect ( groupInstance . name ) . toBeTruthy ( ) ;
@@ -183,11 +157,10 @@ describe('MdButtonToggle with forms', () => {
183
157
tick ( ) ;
184
158
185
159
expect ( groupNgModel . valid ) . toBe ( true ) ;
186
- expect ( groupNgModel . pristine ) . toBe ( false ) ;
160
+ expect ( groupNgModel . pristine ) . toBe ( true ) ;
187
161
expect ( groupNgModel . touched ) . toBe ( false ) ;
188
162
189
- let nativeRadioLabel = buttonToggleDebugElements [ 2 ] . query ( By . css ( 'label' ) ) . nativeElement ;
190
- nativeRadioLabel . click ( ) ;
163
+ buttonToggleLabels [ 2 ] . click ( ) ;
191
164
fixture . detectChanges ( ) ;
192
165
tick ( ) ;
193
166
@@ -197,7 +170,7 @@ describe('MdButtonToggle with forms', () => {
197
170
} ) ) ;
198
171
199
172
it ( 'should update the ngModel value when selecting a button toggle' , fakeAsync ( ( ) => {
200
- buttonToggleInstances [ 1 ] . checked = true ;
173
+ buttonToggleLabels [ 1 ] . click ( ) ;
201
174
fixture . detectChanges ( ) ;
202
175
203
176
tick ( ) ;
@@ -276,9 +249,7 @@ describe('MdButtonToggle without forms', () => {
276
249
277
250
it ( 'should update the group value when one of the toggles changes' , ( ) => {
278
251
expect ( groupInstance . value ) . toBeFalsy ( ) ;
279
- let nativeCheckboxLabel = buttonToggleDebugElements [ 0 ] . query ( By . css ( 'label' ) ) . nativeElement ;
280
-
281
- nativeCheckboxLabel . click ( ) ;
252
+ buttonToggleLabelElements [ 0 ] . click ( ) ;
282
253
fixture . detectChanges ( ) ;
283
254
284
255
expect ( groupInstance . value ) . toBe ( 'test1' ) ;
@@ -287,19 +258,15 @@ describe('MdButtonToggle without forms', () => {
287
258
288
259
it ( 'should update the group and toggles when one of the button toggles is clicked' , ( ) => {
289
260
expect ( groupInstance . value ) . toBeFalsy ( ) ;
290
- let nativeCheckboxLabel = buttonToggleDebugElements [ 0 ] . query ( By . css ( 'label' ) ) . nativeElement ;
291
-
292
- nativeCheckboxLabel . click ( ) ;
261
+ buttonToggleLabelElements [ 0 ] . click ( ) ;
293
262
fixture . detectChanges ( ) ;
294
263
295
264
expect ( groupInstance . value ) . toBe ( 'test1' ) ;
296
265
expect ( groupInstance . selected ) . toBe ( buttonToggleInstances [ 0 ] ) ;
297
266
expect ( buttonToggleInstances [ 0 ] . checked ) . toBe ( true ) ;
298
267
expect ( buttonToggleInstances [ 1 ] . checked ) . toBe ( false ) ;
299
268
300
- let nativeCheckboxLabel2 = buttonToggleDebugElements [ 1 ] . query ( By . css ( 'label' ) ) . nativeElement ;
301
-
302
- nativeCheckboxLabel2 . click ( ) ;
269
+ buttonToggleLabelElements [ 1 ] . click ( ) ;
303
270
fixture . detectChanges ( ) ;
304
271
305
272
expect ( groupInstance . value ) . toBe ( 'test2' ) ;
@@ -309,9 +276,7 @@ describe('MdButtonToggle without forms', () => {
309
276
} ) ;
310
277
311
278
it ( 'should check a button toggle upon interaction with underlying native radio button' , ( ) => {
312
- let nativeRadioInput = buttonToggleDebugElements [ 0 ] . query ( By . css ( 'input' ) ) . nativeElement ;
313
-
314
- nativeRadioInput . click ( ) ;
279
+ buttonToggleLabelElements [ 0 ] . click ( ) ;
315
280
fixture . detectChanges ( ) ;
316
281
317
282
expect ( buttonToggleInstances [ 0 ] . checked ) . toBe ( true ) ;
@@ -354,12 +319,12 @@ describe('MdButtonToggle without forms', () => {
354
319
let changeSpy = jasmine . createSpy ( 'button-toggle-group change listener' ) ;
355
320
groupInstance . change . subscribe ( changeSpy ) ;
356
321
357
- groupInstance . value = 'test1' ;
322
+ buttonToggleLabelElements [ 0 ] . click ( ) ;
358
323
fixture . detectChanges ( ) ;
359
324
tick ( ) ;
360
325
expect ( changeSpy ) . toHaveBeenCalled ( ) ;
361
326
362
- groupInstance . value = 'test2' ;
327
+ buttonToggleLabelElements [ 1 ] . click ( ) ;
363
328
fixture . detectChanges ( ) ;
364
329
tick ( ) ;
365
330
expect ( changeSpy ) . toHaveBeenCalledTimes ( 2 ) ;
@@ -414,7 +379,7 @@ describe('MdButtonToggle without forms', () => {
414
379
fixture . detectChanges ( ) ;
415
380
416
381
expect ( groupInstance . value ) . toBe ( 'green' ) ;
417
- expect ( testComponent . lastEvent . value ) . toBe ( 'green' ) ;
382
+ expect ( testComponent . lastEvent ) . toBeFalsy ( ) ;
418
383
} ) ;
419
384
420
385
} ) ;
0 commit comments