@@ -50,7 +50,6 @@ describe('MatSlideToggle without forms', () => {
50
50
let labelElement : HTMLLabelElement ;
51
51
let inputElement : HTMLInputElement ;
52
52
53
- // This initialization is async() because it needs to wait for ngModel to set the initial value.
54
53
beforeEach ( fakeAsync ( ( ) => {
55
54
fixture = TestBed . createComponent ( SlideToggleBasic ) ;
56
55
@@ -252,14 +251,17 @@ describe('MatSlideToggle without forms', () => {
252
251
expect ( testComponent . lastEvent . checked ) . toBe ( true ) ;
253
252
} ) ) ;
254
253
255
- it ( 'should support subscription on the change observable' , ( ) => {
256
- slideToggle . change . subscribe ( ( event : MatSlideToggleChange ) => {
257
- expect ( event . checked ) . toBe ( true ) ;
258
- } ) ;
254
+ it ( 'should support subscription on the change observable' , fakeAsync ( ( ) => {
255
+ const spy = jasmine . createSpy ( 'change spy' ) ;
256
+ const subscription = slideToggle . change . subscribe ( spy ) ;
259
257
260
- slideToggle . toggle ( ) ;
258
+ labelElement . click ( ) ;
261
259
fixture . detectChanges ( ) ;
262
- } ) ;
260
+ tick ( ) ;
261
+
262
+ expect ( spy ) . toHaveBeenCalledWith ( jasmine . objectContaining ( { checked : true } ) ) ;
263
+ subscription . unsubscribe ( ) ;
264
+ } ) ) ;
263
265
264
266
it ( 'should show a ripple when focused by a keyboard action' , fakeAsync ( ( ) => {
265
267
expect ( slideToggleElement . querySelectorAll ( '.mat-ripple-element' ) . length )
@@ -830,6 +832,18 @@ describe('MatSlideToggle with forms', () => {
830
832
831
833
expect ( modelInstance . pristine ) . toBe ( true ) ;
832
834
} ) ) ;
835
+
836
+ it ( 'should set the model value when toggling via the `toggle` method' , fakeAsync ( ( ) => {
837
+ expect ( testComponent . modelValue ) . toBe ( false ) ;
838
+
839
+ fixture . debugElement . query ( By . directive ( MatSlideToggle ) ) . componentInstance . toggle ( ) ;
840
+ fixture . detectChanges ( ) ;
841
+ flushMicrotasks ( ) ;
842
+
843
+ fixture . detectChanges ( ) ;
844
+ expect ( testComponent . modelValue ) . toBe ( true ) ;
845
+ } ) ) ;
846
+
833
847
} ) ;
834
848
835
849
describe ( 'with a FormControl' , ( ) => {
0 commit comments