Я новичок в тестировании ферментов, и я сделал компонент как:
import React from 'react';
import {
compose,
withState,
withHandlers,
branch,
pure,
renderComponent,
} from 'recompose';
import Fields from './components/Fields';
import Flow from './components/Flow';
export const MODE = {
preview: 'preview',
edit: 'edit',
};
const inEditMode = ({ mode }) => mode === MODE.edit;
const Component = branch(
inEditMode,
renderComponent(Fields),
renderComponent(Flow),
)(Flow);
const Tab = pure(props => <Component {...props} />);
export default compose(
withState('mode', 'changeMode', props => {
const path = props.path;
return props.path ? MODE.preview : MODE.edit;
}),
withHandlers({
changeMode: ({ changeMode }) => () => changeMode(currentState => currentState === MODE.preview ? MODE.edit : MODE.preview),
onApprovalChange: ({ onAction, entity }) => data => {
onAction({ ...data, status: 'UPDATED' }, data.id);
},
}),
)(Tab);
В приведенном выше компоненте я хочу проверить следующее:
Рендеринг
Component
inEditMode
функция компонентаОбработчики присутствуют в
withState
иwithHandlers
branch
утилита recompose (я действительно не думаю, что мне нужно это проверять, потому что они, возможно, уже сделали это, но предположим, что я хочу протестировать такую функцию)
Я мог найти некоторую документацию по stackoverflow о тестировании, но не было ни одного ресурса, который мог бы дать общее представление.