Enzima - Como acessar e definir o valor <input>?
Estou confuso sobre como acessar<input>
valor ao usarmount
. Aqui está o que eu tenho como teste:
it('cancels changes when user presses esc', done => {
const wrapper = mount(<EditableText defaultValue="Hello" />);
const input = wrapper.find('input');
console.log(input.render().attr('value'));
input.simulate('focus');
done();
});
O console imprimeundefined
. Mas se eu modificar um pouco o código, ele funcionará:
it('cancels changes when user presses esc', done => {
const wrapper = render(<EditableText defaultValue="Hello" />);
const input = wrapper.find('input');
console.log(input.val());
input.simulate('focus');
done();
});
Exceto, é claro, oinput.simulate
linha falha desde que eu estou usandorender
agora. Eu preciso que ambos funcionem corretamente. Como faço para corrigir isso?
EDITAR:
Devo mencionar,<EditableText />
não é um componente controlado. Mas quando passodefaultValue
para dentro<input />
, parece definir o valor. O segundo bloco de código acima imprime o valor e, da mesma forma, se eu inspecionar o elemento de entrada no Chrome e digitar$0.value
no console, mostra o valor esperado.