Skip to content

simulate('change' ...) on input not updating its value #2426

@Nikhil22

Description

@Nikhil22

Current behavior

As the title says, when I try to simulate a change on my <input/>, the input's value remains the same - it doesn't change.

Here is my HTML. This <input/> is within a <form/>

<input 
   className="w-100 ba b--black-20 br1 pa3 bg--easy-gray mb2" 
   type="text" 
   name="firstName" 
   ref={register({ required: true })}
/>

register is from the useForm hook of react-hook-form.

Here is my mount.

const signup = mount(
   <Provider store={mockStore}>
        <Router history={history}>
               <Signup />
          </Router>
   </Provider>,
)

The <form/> and <input/> are within the <Signup/> component.

Here is my enzyme code

const firstNameInput = signup.findWhere((n) => n.prop('name') === 'firstName')
firstNameInput.simulate('change', {target: {value: 'Nikhil'}})
await act( async () => {
    signup.update();
})
console.log(firstNameInput.props())

Here is the output

 {
    className: 'w-100 ba b--black-20 br1 pa3 bg--easy-gray mb2',
    type: 'text',
    name: 'firstName'
}

I don't see value anywhere.

Expected behavior

 {
    className: 'w-100 ba b--black-20 br1 pa3 bg--easy-gray mb2',
    type: 'text',
    name: 'firstName',
    value: 'Nikhil'
}

Your environment

API

  • shallow
  • mount
  • render

Version

library version
enzyme ^3.11.0
react ^16.13.1
react-dom ^16.13.1"
react-test-renderer
adapter (below)

Adapter

  • enzyme-adapter-react-16
  • enzyme-adapter-react-16.3
  • enzyme-adapter-react-16.2
  • enzyme-adapter-react-16.1
  • enzyme-adapter-react-15
  • enzyme-adapter-react-15.4
  • enzyme-adapter-react-14
  • enzyme-adapter-react-13
  • enzyme-adapter-react-helper
  • others ( )

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions