11import * as React from 'react' ;
22import { MemberPage , Props } from './page' ;
33import * as SaveMember from './actions/saveMember' ;
4- import { saveMemberAction } from './actions/saveMember' ;
54import { shallow } from 'enzyme' ;
65import { createEmptyMember } from '../../reducers/member' ;
76import { createEmptyMemberErrors } from '../../reducers/memberErrors' ;
87import { MemberEntity } from '../../model' ;
9- import configureStore from 'redux-mock-store' ;
10- import reduxThunk from 'redux-thunk' ;
118
12- const middlewares = [ reduxThunk ] ;
13- const getMockStore = configureStore ( middlewares ) ;
149
1510describe ( '/components/member/page specs' , ( ) => {
1611 it ( 'should retur as expected when definde props' , ( ) => {
1712 //arrange
18- const data :Props = {
13+ const props :Props = {
1914 memberId :- 1 ,
2015 member : createEmptyMember ( ) ,
2116 memberErrors : createEmptyMemberErrors ( ) ,
@@ -25,7 +20,7 @@ describe ('/components/member/page specs',()=>{
2520 }
2621 //act
2722 const component = shallow (
28- < MemberPage { ...data } />
23+ < MemberPage { ...props } />
2924 ) ;
3025 //assert
3126 expect ( component ) . toMatchSnapshot ( ) ;
@@ -38,58 +33,84 @@ describe ('/components/member/page specs',()=>{
3833 avatar_url :'test new avatar' ,
3934 login : 'test new login'
4035 }
41- const data : Props = {
36+ const props : Props = {
4237 memberId : - 1 ,
43- member : createEmptyMember ( ) ,
38+ member : newMember ,
4439 memberErrors : createEmptyMemberErrors ( ) ,
4540 fetchMemberById : ( ) => { } ,
4641 onChange : ( ) => { } ,
4742 onSave : jest . fn ( ) ,
4843 }
49- const store = getMockStore ( ) ;
44+
5045
5146 const actionSaveStub = jest . spyOn ( SaveMember , 'saveMemberAction' )
5247 . mockImplementation ( ( ) => (
5348 { ...newMember , }
5449 ) ) ;
5550
5651 const component = shallow (
57- < MemberPage { ...data } /> ,
58- {
59- context : { store } ,
60- } ,
52+ < MemberPage { ...props } /> ,
6153 ) ;
6254
6355
64- component . prop ( 'onSave' ) ( ) ;
65- console . log ( `pete ${ component } ` ) ;
56+ //component.prop('onSave')();
57+ component . simulate ( 'save' , newMember ) ;
58+
6659 //assert
67- expect ( actionSaveStub ) . toHaveBeenCalledWith ( newMember ) ;
60+ expect ( props . onSave ) . toHaveBeenCalledWith ( newMember ) ;
6861
6962 } ) ;
7063
71- /* it('should call onChange when Changes are made', () => {
64+ it ( 'should call onChange when Changes are made' , ( ) => {
7265 //arrange
7366
74- const data: Props = {
67+ const newMember : MemberEntity = {
68+ id : 56789 ,
69+ avatar_url : 'test new avatar' ,
70+ login : 'test new login'
71+ }
72+ const props : Props = {
7573 memberId : - 1 ,
76- member: createEmptyMember() ,
74+ member : newMember ,
7775 memberErrors : createEmptyMemberErrors ( ) ,
7876 fetchMemberById : ( ) => { } ,
7977 onChange : jest . fn ( ) ,
8078 onSave : ( ) => { } ,
8179 }
8280
81+ let fieldName = 'test fieldName' ;
82+ let value = 'test value' ;
8383
8484 //act
8585 const component = shallow (
86- <MemberPage {...data } />
86+ < MemberPage { ...props } />
8787 ) ;
8888
8989
90- component.find('data.onChange' );
90+ component . simulate ( 'change' , fieldName , value ) ;
9191 //assert
92- expect(component).toHaveBeenCalled();
92+ expect ( props . onChange ) . toHaveBeenCalledWith ( newMember , fieldName , value ) ;
93+
94+ } ) ;
95+ it ( 'should componetDidMount when component is called' , ( ) => {
96+ //arrange
97+ const props : Props = {
98+ memberId : - 1 ,
99+ member : createEmptyMember ( ) ,
100+ memberErrors : createEmptyMemberErrors ( ) ,
101+ fetchMemberById : jest . fn ( ) ,
102+ onChange : ( ) => { } ,
103+ onSave : ( ) => { } ,
104+ }
93105
94- }); */
106+ //act
107+ const component = shallow (
108+ < MemberPage { ...props } />
109+ ) ;
110+
111+ component . find ( 'componentDidMount' ) ;
112+
113+ //assert
114+ expect ( props . fetchMemberById ) . toHaveBeenCalled ( ) ;
115+ } ) ;
95116} ) ;
0 commit comments