Функция шутки не вызывается - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть следующий компонент:

`const shallowComponent = (props = {}) => shallow(<myComponent {...defaultProps} {...props} />);

, который отображает эту разметку при использовании instance.debug():

<div className="myDiv">
    <ICWButtonGroup id="font-alignment-options" className="paragraph-style-alignment-options" labels={{...}}>
     <ICWButtonStateful active={true} onClick={[Function: onClick]} />
        <ICWButtonStateful onClick={[Function: onClick]} />
        <ICWButtonStateful onClick={[Function: onClick]} />
    </ICWButtonGroup>
    <ICWInput label="LINE_HEIGHT" value="" onBlur={[Function: onBlur]} onChange={[Function: onChange]} type="text" />
    <ICWInput label="LETTER_SPACING" value="" onBlur={[Function: onBlur]} onChange={[Function: onChange]} type="text" />
</div>

Внутри компонента есть этот пропеллер:

onChange={(event, { value }) => setLineHeight({ value, hasError: false })}

setLineHeight - это реагирующий useState() хук.

Мой тест:

it('Should execute onChange when called', () => {
    const props = {
     onChange: jest.fn()
    };
    const instance = shallowComponent(props);
    const lineHeightInput = instance.find('ICWInput[label="LINE_HEIGHT"]');
    lineHeightInput.prop('onChange')(undefined, { value: '123' });
    console.log(instance.debug());
    expect(props.onChange).toBeCalled();
});

Но когда я запускаю этот тест, он говорит, что onChange не был вызван. Это расстраивает, потому что у меня есть идентичный компонент в другом месте, и этот точный тест, почти тот же построчно, работает без нареканий. Однако в другом компоненте я вижу onChange={[Function: mockConstructor]} по всей разметке, но в этом неудачном тесте моя фиктивная функция, кажется, нигде не зарегистрирована. Почему?

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