react-native-test-utils icon indicating copy to clipboard operation
react-native-test-utils copied to clipboard

`createApi()` methods return cached values of component

Open phillbaker opened this issue 8 years ago • 1 comments

After rendering a component, I believe that the component api text() function and props property are returning cached values of the rendered component's values because this line calls toJSON():

https://github.com/shichongrui/react-native-test-utils/blob/ecf0a7951721274298e0b0cd70e9b8428a33e9b5/index.js#L65

Example:

test('it has the correct text', () => {
  let view = renderer(<MyComponent />)

  expect(view.text()).toContain('Hello') // passes

  let textInputView = view.query("TextInput[placeholder='Name']")
  textInputView.simulate('changeText', 'react-native-test-utils')

  expect(view.text()).toContain('react-native-test-utils') // fails
})

Proposed fix: pass a reference to the view and call toJSON() in the functions themselves.

phillbaker avatar Mar 21 '18 22:03 phillbaker

That's a great catch. I'll do some digging to see if this is the culprit and see if we can fix it.

shichongrui avatar Mar 22 '18 14:03 shichongrui