Open albertfdp opened 7 years ago
There are patterns to do this with unexpected-react now.
You can render the component yourself (without using when [deeply] rendered
), then render the component again as you said with new props.
Then use the renderer or component instance in the assertion.
const renderer = TestUtils.createRenderer()
renderer.render(<MyComponent prop="first" />)
renderer.render(<MyComponent prop="second" />)
expect(renderer, 'to have rendered', ...)
We can try and add this new assertion, as I think it would be quite useful
as it means you can use the when rendered
and similar assertions, but
just wanted to point out it can be done :)
On Tue, 1 Aug 2017, 22:50 Albert Fernández, notifications@github.com wrote:
Hi!
I have some piece of code I'd like to test, however it's on componentWillReceiveProps. Currently, there doesn't seem to be a way to test this using unexpected-react.
A solution is to re-render the same component on the same DOM node, which React will re-render instead of remount. Example https://stackoverflow.com/a/30616091/1794589
I think adding this assertion could probably do the job:
when receiving new props
Nice, I didn't know it was as easy. The example I pointed was a lot more boilerplate.
I think it would be quite useful to add, testing these re-render lifecycles should have first-level support. Happy to add to do a PR for this if you can point me a bit on where to start.
Thanks!
Hi!
I have some piece of code I'd like to test, however it's on
componentWillReceiveProps
. Currently, there doesn't seem to be a way to test this usingunexpected-react
.A solution is to re-render the same component on the same DOM node, which React will re-render instead of remount. Example
I think adding this assertion could probably do the job:
<RenderedReactElement> when receiving new props <object> <assertion>
What do you think? Thanks!