2017-07-26 6 views
3

Wie kann ich testen (mit jest + enzyme) den folgenden Code, recompose zum Erstellen eines HoC verwendet:Testing Neuzusammenstellung des HOC mit Enzym

import {compose, withState, withHandlers} from 'recompose' 

const addCounting = compose(
    withState('counter', 'setCounter', 0), 
    withHandlers({ 
    increment: ({ setCounter }) =>() => setCounter(n => n + 1), 
    decrement: ({ setCounter }) =>() => setCounter(n => n - 1), 
    reset: ({ setCounter }) =>() => setCounter(0) 
    }) 
) 

Bei der Durchführung flach machen, ich habe Zugang zu counter und setCounter Eigenschaften, so wie:

import {shallow} from 'enzyme' 

const WithCounting = addCounting(EmptyComponent) 
const wrapper = shallow(<WithCounting />) 

wrapper.props().setCounter(1) 
expect(wrapper.props().counter).toEqual(1) 

Die große Frage ist, wie kann ich Zugriff auf die Handler (increment, decrement und reset) und Call Sie? Sie erscheinen nicht in der wrapper.props()

Antwort

3

So können Sie die Requisiten zuerst von der Suche nach der Instanz zugreifen können:

const EmptyComponent =() => null; 
const WithCounting = addCounting(props => <EmptyComponent {...props} />); 
const wrapper = mount(<WithCounting />); 

wrapper.find(EmptyComponent).props().setCounter(1); 
expect(wrapper.find(EmptyComponent).props().counter).toEqual(1);