mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 22:10:34 +00:00
The composable interpreter treated a step as done after a 60 ms gap with no commits, and treated its 2 s timeout as done too. Slow sync or reflow work could finish after the step, so a case could assert on a half-synced file. Each event step now waits, as the plugin waitForLayoutUpdate does, until every pending work tracked by the reflow registry has drained: the watcher's sync wait, the sync it starts, and layout and text reflow. A step that does not drain within 2 s fails the test and names the work still pending, and the next variant starts with nothing pending. The tests cover an edit with a deliberately slow sync, undo and redo steps that must wait for the watcher's touch-component, translation and derived commits, a sync that never finishes, and a restart of the edit watchers, which must keep the undo entries of an edit the same.