Description
Hi! I'm just getting started with Enzyme, and I think it looks great so far.
I think I've come across a documentation issue. I work with TypeScript, and when I look at the method update()
of the return value of mount(...)
, like this:
const document = mount(<div>test</div>);
document.update();
The documentation in my IDE says the following:
/**
* Forces a re-render. Useful to run before checking the render output if something external may be updating
* the state of the component somewhere.
* Returns itself.
*
* NOTE: can only be called on a wrapper instance that is also the root instance.
*/
However, if I look at this page, it says:
Syncs the enzyme component tree snapshot with the react component tree.
If the latter is correct, this is definitely the function I'm looking for. I do have something external that is updating the state, so synchronizing the trees makes sense. If the former is correct, it's absolutely not something I want to do, because I feel like forcing a re-render breaks the integrity of the test. It should re-render on its own if everything is in order.
I hope you understand what I'm saying here, and I'd appreciate any answer that could indicate which of the documentation is correct (or if I'm looking at two different documentations completely!).
Activity
mrdulin commentedon Apr 22, 2022
The document of
.update()
method needs more clearly.What does "something external" means?
ljharb commentedon Apr 22, 2022
JavaScript outside of your test.
mrdulin commentedon Apr 22, 2022
@ljharb Sorry, still don't understand. There is an example in the doc .update() => Self.
The example uses a class component with the property
count
. How is this "something external"? I spent 2 minutes reading the source code of the.update
method, the intent is not easy to understand.Is there any other scenario considered as "something external"?