common and runner got solid unit tests (11 total per the PR description, including good cyclic/shared-structure cases). But web/data-visualizer — the package containing all the actually intricate logic (Tree.fromSerializedNode's cycle handling, and especially OriginalDrawer's pixel-math in getNodeWidth/getNodeHeight and backward-arrow routing) — has none. This is exactly what the coveralls failure is flagging. It's also exactly the kind of code that already produced a silent bug once in this PR (the 10px clip from a wrong margin constant) — worth at least a few unit tests around Tree.fromSerializedNode + width/height calc for cyclic and shared-structure inputs before merging.
common and runner got solid unit tests (11 total per the PR description, including good cyclic/shared-structure cases). But web/data-visualizer — the package containing all the actually intricate logic (Tree.fromSerializedNode's cycle handling, and especially OriginalDrawer's pixel-math in getNodeWidth/getNodeHeight and backward-arrow routing) — has none. This is exactly what the coveralls failure is flagging. It's also exactly the kind of code that already produced a silent bug once in this PR (the 10px clip from a wrong margin constant) — worth at least a few unit tests around Tree.fromSerializedNode + width/height calc for cyclic and shared-structure inputs before merging.