Я написал метод-обработчик, связанный с событием onChange
элемента input
, и он принимает два параметра
<div className="p-lg-12">
<InputText
value={this.state.blog.title}
id="title"
placeholder="Blog Title"
onChange={e =>
this.handleInput("title", e.target.value)
}
/>
</div>
в зависимости от первого параметра. Я изменяю значение указанного поля c в объект, управляемый объектом состояния
handleInput(key, value) {
let blogData = Object.assign({}, this.state.blog);
blogData[key] = value;
this.setState({ blog: blogData });
}
Я не могу simulate
этот метод в ферменте
it("updates blog data with user input", () => {
const blogEditor = shallow(<BlogEditor />);
blogEditor
.find({ placeholder: "Blog Title" })
.simulate("onChange", ("title", { target: { value: "x" } }));
expect(blogEditor.state().blog.title).toEqual("x");
});
Полученная ошибка
expect(received).toEqual(expected) // deep equality
Expected: "x"
Received: ""
45 | .find({ placeholder: "Blog Title" })
46 | .simulate("onChange", ("title", { target: { value: "x" } }));
> 47 | expect(blogEditor.state().blog.title).toEqual("x");
| ^
48 | });
49 | });
50 |
at Object.<anonymous> (resources/js/tests/BlogEditor/BlogEditor.test.js:47:47)
Итак, правильно ли я передаю параметры в метод-обработчик?
Кроме того, это может быть метод find
, который пока не возвращает нужный элемент, я пробовал
find('#title')
в качестве title
- это HTML id find({ placeholder: "Blog Title" })
в качестве этого компонента в виде 5 входных компонентов, каждый с уникальным атрибутом id и значением заполнителя.