This adds a failing test for a bug introduced in https://github.com/mobxjs/mobx-state-tree/pull/2116 . There, we started passing the node down to snapshot post processors to allow them to do fancy stuff, but, this mechanism is broken for deeply nested types that are lazily instantiated. We only instantiate the children of an array type when it is accessed or snapshotted for the first time (as best I can tell), and when this happens, the node.storedValue property is null and so the snapshot processor doesn't get the node.
The fix (I think) is to ensure that deeply nested nodes with snapshot post processors are eagerly created before we start snapshotting, but I am struggling to get that to work. Any insight would be appreciated!
What does this PR do and why?
This adds a failing test for a bug introduced in https://github.com/mobxjs/mobx-state-tree/pull/2116 . There, we started passing the node down to snapshot post processors to allow them to do fancy stuff, but, this mechanism is broken for deeply nested types that are lazily instantiated. We only instantiate the children of an array type when it is accessed or snapshotted for the first time (as best I can tell), and when this happens, the
node.storedValue
property is null and so the snapshot processor doesn't get the node.The fix (I think) is to ensure that deeply nested nodes with snapshot post processors are eagerly created before we start snapshotting, but I am struggling to get that to work. Any insight would be appreciated!
Relevant past issues and PRs: