Repetir el cambio de prop de componente de testing con enzima

Estoy modificando un ejemplo que se encuentra aquí:

https://github.com/airbnb/enzyme/blob/master/docs/api/ReactWrapper/setProps.md

class Foo extends React.Component { render() { return ( <input className={this.props.name} type="text" value={this.props.name} onChange={()=>{}} /> ); } } it('should pass and does not', ()=> { const wrapper = mount(<Foo name="foo" />); expect(wrapper.find('.foo').html()).toBe(`<input class="foo" type="text" value="foo">`); wrapper.setProps({ name: 'bar' }); expect(wrapper.find('.bar').html()).toBe(`<input class="bar" type="text" value="bar">`); }); Result: Expected '<input class="bar" type="text" value="foo">' to be '<input class="bar" type="text" value="bar">'. 

Puede ver en el resultado de la testing que el atributo className se actualizó correctamente en prop change. Pero el valor de la input permanece incorrectamente establecido en 'foo'.

¿Alguna idea sobre cómo puedo afirmar que ese valor ha sido cambiado correctamente en el componente que recibe nuevos apoyos para un atributo de valor en una input?

  • Pruebe un formulario con Jest y React JS TestUtils
  • Evento de selección de window de testing en Reactjs
  • Simulación de input de text con reactJs TestUtils
  • Cómo probar un componente React que usa context como en react-router 2.0 con Jest 0.8.x
  • React.addons.TestUtils.Simulate.scroll no funciona
  • One Solution collect form web for “Repetir el cambio de prop de componente de testing con enzima”

    Tienes que llamar a un método .update() en un contenedor. (Justo después de configurar nuevos puntales) Esto forzará la actualización del componente y el valor de la input debería cambiar.

    Puede leer más sobre esto aquí: http://airbnb.io/enzyme/docs/api/ShallowWrapper/update.html

    Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.