Вам необходимо передать id
в смоделированном событии:
emailInput.simulate("change", {
target: {
id: "your id here"
value: "email@email.com"
}
});
Кроме того, поскольку обновления выполняются асинхронно, вы должны дождаться ваших обещаний, прежде чем выполнять какие-либо утверждения.
Определить flushPromises
функция:
function flushPromises() {
return new Promise(resolve => setImmediate(resolve));
}
Тогда ждите обещания в вашем тесте:
test("Rendered email input and test valid", () => {
const email = "";
const wrapper = setup(null, { email });
const emailInput = findByTestAttribute(
wrapper,
someId
);
emailInput.simulate("change", { target: { id: "your id here", value: "email@email.com" } });
await flushPromises; // await for promises to return
console.log(wrapper.state('email')) //Empty ""
expect(wrapper.state("email")).toBe("email@email.com");
});