@@ -49,7 +49,6 @@ describe('MatSlideToggle without forms', () => {
49
49
let labelElement : HTMLLabelElement ;
50
50
let inputElement : HTMLInputElement ;
51
51
52
- // This initialization is async() because it needs to wait for ngModel to set the initial value.
53
52
beforeEach ( fakeAsync ( ( ) => {
54
53
fixture = TestBed . createComponent ( SlideToggleBasic ) ;
55
54
@@ -251,14 +250,17 @@ describe('MatSlideToggle without forms', () => {
251
250
expect ( testComponent . lastEvent . checked ) . toBe ( true ) ;
252
251
} ) ) ;
253
252
254
- it ( 'should support subscription on the change observable' , ( ) => {
255
- slideToggle . change . subscribe ( ( event : MatSlideToggleChange ) => {
256
- expect ( event . checked ) . toBe ( true ) ;
257
- } ) ;
253
+ it ( 'should support subscription on the change observable' , fakeAsync ( ( ) => {
254
+ const spy = jasmine . createSpy ( 'change spy' ) ;
255
+ const subscription = slideToggle . change . subscribe ( spy ) ;
258
256
259
- slideToggle . toggle ( ) ;
257
+ labelElement . click ( ) ;
260
258
fixture . detectChanges ( ) ;
261
- } ) ;
259
+ tick ( ) ;
260
+
261
+ expect ( spy ) . toHaveBeenCalledWith ( jasmine . objectContaining ( { checked : true } ) ) ;
262
+ subscription . unsubscribe ( ) ;
263
+ } ) ) ;
262
264
263
265
it ( 'should show a ripple when focused by a keyboard action' , fakeAsync ( ( ) => {
264
266
expect ( slideToggleElement . querySelectorAll ( '.mat-ripple-element' ) . length )
@@ -739,6 +741,18 @@ describe('MatSlideToggle with forms', () => {
739
741
740
742
expect ( modelInstance . pristine ) . toBe ( true ) ;
741
743
} ) ) ;
744
+
745
+ it ( 'should set the model value when toggling via the `toggle` method' , fakeAsync ( ( ) => {
746
+ expect ( testComponent . modelValue ) . toBe ( false ) ;
747
+
748
+ fixture . debugElement . query ( By . directive ( MatSlideToggle ) ) . componentInstance . toggle ( ) ;
749
+ fixture . detectChanges ( ) ;
750
+ flushMicrotasks ( ) ;
751
+
752
+ fixture . detectChanges ( ) ;
753
+ expect ( testComponent . modelValue ) . toBe ( true ) ;
754
+ } ) ) ;
755
+
742
756
} ) ;
743
757
744
758
describe ( 'with a FormControl' , ( ) => {
0 commit comments