@@ -3,9 +3,15 @@ import {assert} from 'chai';
33import { shallow , mount } from 'enzyme' ;
44import * as td from 'testdouble' ;
55import Switch from '../../../packages/switch/index' ;
6+ import { coerceForTesting } from '../helpers/types' ;
67
78suite ( 'Switch' ) ;
89
10+ const getAdapter = ( instance : Switch ) => {
11+ // @ts -ignore
12+ return instance . foundation . adapter_ ;
13+ } ;
14+
915test ( 'creates foundation' , ( ) => {
1016 const wrapper = shallow < Switch > ( < Switch /> ) ;
1117 assert . exists ( wrapper . instance ( ) . foundation ) ;
@@ -47,42 +53,42 @@ test('has checked class when props.checked is true', () => {
4753
4854test ( '#foundation.setChecked gets called when prop.checked updates' , ( ) => {
4955 const wrapper = shallow < Switch > ( < Switch /> ) ;
50- wrapper . instance ( ) . foundation . setChecked = td . func ( ) ;
56+ wrapper . instance ( ) . foundation . setChecked = td . func < ( setChecked : boolean ) => null > ( ) ;
5157 wrapper . setProps ( { checked : true } ) ;
5258 td . verify ( wrapper . instance ( ) . foundation . setChecked ( true ) , { times : 1 } ) ;
5359} ) ;
5460
5561test ( '#foundation.setDisabled gets called when prop.disabled updates' , ( ) => {
5662 const wrapper = shallow < Switch > ( < Switch /> ) ;
57- wrapper . instance ( ) . foundation . setDisabled = td . func ( ) ;
63+ wrapper . instance ( ) . foundation . setDisabled = td . func < ( disabled : boolean ) => null > ( ) ;
5864 wrapper . setProps ( { disabled : true } ) ;
5965 td . verify ( wrapper . instance ( ) . foundation . setDisabled ( true ) , { times : 1 } ) ;
6066} ) ;
6167
6268test ( '#componentWillUnmount destroys foundation' , ( ) => {
6369 const wrapper = shallow < Switch > ( < Switch /> ) ;
6470 const foundation = wrapper . instance ( ) . foundation ;
65- foundation . destroy = td . func ( ) ;
71+ foundation . destroy = td . func < ( ) => null > ( ) ;
6672 wrapper . unmount ( ) ;
6773 td . verify ( foundation . destroy ( ) , { times : 1 } ) ;
6874} ) ;
6975
7076test ( '#adapter.addClass adds class to state.classList' , ( ) => {
7177 const wrapper = shallow < Switch > ( < Switch /> ) ;
72- wrapper . instance ( ) . foundation . adapter_ . addClass ( 'test-class-name' ) ;
78+ getAdapter ( wrapper . instance ( ) ) . addClass ( 'test-class-name' ) ;
7379 assert . isTrue ( wrapper . state ( ) . classList . has ( 'test-class-name' ) ) ;
7480} ) ;
7581
7682test ( '#adapter.removeClass removes class from state.classList' , ( ) => {
7783 const wrapper = shallow < Switch > ( < Switch /> ) ;
7884 wrapper . setState ( { classList : new Set ( [ 'test-class-name' ] ) } ) ;
79- wrapper . instance ( ) . foundation . adapter_ . removeClass ( 'test-class-name' ) ;
85+ getAdapter ( wrapper . instance ( ) ) . removeClass ( 'test-class-name' ) ;
8086 assert . isFalse ( wrapper . state ( ) . classList . has ( 'test-class-name' ) ) ;
8187} ) ;
8288
8389test ( '#adapter.setNativeControlChecked updates state.nativeControlChecked' , ( ) => {
8490 const wrapper = shallow < Switch > ( < Switch /> ) ;
85- wrapper . instance ( ) . foundation . adapter_ . setNativeControlChecked ( true ) ;
91+ getAdapter ( wrapper . instance ( ) ) . setNativeControlChecked ( true ) ;
8692 assert . isTrue ( wrapper . state ( ) . nativeControlChecked ) ;
8793} ) ;
8894
@@ -94,7 +100,7 @@ test('#state.nativeControlChecked updates NativeControl', () => {
94100
95101test ( '#adapter.setNativeControlDisabled updates state.nativeControlDisabled' , ( ) => {
96102 const wrapper = shallow < Switch > ( < Switch /> ) ;
97- wrapper . instance ( ) . foundation . adapter_ . setNativeControlDisabled ( true ) ;
103+ getAdapter ( wrapper . instance ( ) ) . setNativeControlDisabled ( true ) ;
98104 assert . isTrue ( wrapper . state ( ) . nativeControlDisabled ) ;
99105} ) ;
100106
@@ -116,12 +122,17 @@ test('calls foundation.handleChange in NativeControl props.onChange', () => {
116122 const onChange = td . func ( ) as React . ChangeEventHandler < HTMLInputElement > ;
117123 const wrapper = mount < Switch > ( < Switch onChange = { onChange } /> ) ;
118124 const nativeControl = wrapper . find ( '.mdc-switch__native-control' ) ;
119- const mockEvt = {
125+ const mockEvt = coerceForTesting < React . ChangeEvent < HTMLInputElement > > ( {
120126 target : {
121127 checked : true ,
122128 } ,
123- } as React . ChangeEvent < HTMLInputElement > ;
124- wrapper . instance ( ) . foundation . handleChange = td . func ( ) ;
129+ nativeEvent : {
130+ target : {
131+ checked : true ,
132+ } ,
133+ } ,
134+ } ) ;
135+ wrapper . instance ( ) . foundation . handleChange = td . func < ( evt : Event ) => null > ( ) ;
125136 nativeControl . props ( ) . onChange ! ( mockEvt ) ;
126- td . verify ( wrapper . instance ( ) . foundation . handleChange ( mockEvt ) , { times : 1 } ) ;
137+ td . verify ( wrapper . instance ( ) . foundation . handleChange ( mockEvt . nativeEvent ) , { times : 1 } ) ;
127138} ) ;
0 commit comments