Я новичок в шутке и энзимах, и я хочу протестировать свои компоненты React с ним.Проблема в том, что фермент, похоже, игнорирует атрибуты, такие как disabled
или maxLength
.Точнее говоря, я написал компонент с именем TextInput
props
disabled
, value
, maxLength
, ..., который напрямую отображается в поле <input type=text />
.
Когда я сейчас проверяю его следующим образом:
test('empty TextInput change with maxLength', () => {
const { wrapper } = setup({
maxLength: 10
});
wrapper.find('input').simulate('change', {
preventDefault () {},
target: {
value: 'New Text Content',
maxLength: 10
}
});
expect(wrapper.state().value).toEqual('New Text C');
});
Тест не пройден, поскольку значение равно New Text Content
, но когда я регистрирую состояние в браузере, оно равно New Text C
Что я делаю не так?Пожалуйста помоги.
Вот функция setup
, если она кому-то нужна.
import React from 'react';
import TextInput from './TextInput.js';
import Enzyme, { shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
Enzyme.configure({
adapter: new Adapter()
});
const setup = propOverrides => {
const props = Object.assign(
{
id: 'test',
label: 'Textinput test'
},
propOverrides
);
const wrapper = shallow(<TextInput {...props} />);
return {
props,
wrapper
};
};