Jest Enzyme Как обновить детский реквизит - PullRequest
0 голосов
/ 10 апреля 2019

Мне нужна опора дочернего компонента mutate React, которая получает функцию родителей.После обновления функции оболочки она изменяется, но не влияет на дочерний компонент

//Component
export default Component extends React.Component{
   clickFunction(){
      console.log('Parent's Click fn');
   }
   render(){
     return(
         <div>
            <Button onClick={this.clickFunction} data-test-id="button"/>
         </div>
     )
   }
}

// Test

import React from 'react';
import {shallow} from 'enzyme';

const mockClickFunction = jest.fn(() => console.log('Mock Click fn'));

describe('Test Component', () => {
   it('Should mutate child prop', () => {
      const wrapper = shallow(<Component />);
      wrapper.find('[data-test-id="button"]').simulate('click') // Parent's Click fn

      console.log(wrapper.instance().clickFunction) // [Function: bound clickFunction]

      wrapper.instance().clickFunction = mockClickFunction;
      wrapper.update();

      console.log(wrapper.instance().clickFunction) // [Function: mockConstructor]

      wrapper.find('[data-test-id="button"]').simulate('click') // Parent's Click fn but should be Mock Click fn
   })
})

Как я могу изменить функцию дочернего компонента onClick?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...