Frontmatter
| id | 8468 |
| title | Fix Unit Test Failures after VDOM ID Stabilization |
| state | Closed |
| labels | bugaitestingcore |
| assignees | tobiu |
| createdAt | Jan 9, 2026, 3:02 PM |
| updatedAt | Jan 9, 2026, 4:12 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8468 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 9, 2026, 4:12 PM |
Fix Unit Test Failures after VDOM ID Stabilization
tobiu assigned to @tobiu on Jan 9, 2026, 4:11 PM

tobiu
Jan 9, 2026, 4:11 PM
Input from Gemini 3 Pro:
✦ I have resolved the unit test failures by adjusting the initialization timing of stable VDOM IDs.
Root Cause
The
Fire.spec.mjstest failures (event bubbling) revealed a timing issue.DomEventlisteners are registered duringinitConfig(viadomListenersconfig). At this stage, the component's_vdomobject had not yet received its stable ID (which was previously assigned inonConstructed). This caused listeners to be registered with anundefinedvnodeId, breaking the event delegation logic.Resolution
Moved the
ensureStableIds()call fromonConstructedtomergeConfiginsrc/component/Base.mjs.
mergeConfigcreates the instance-specific_vdomclone.- By calling
ensureStableIds()immediately after cloning, we guarantee thatvdom.idis correct before any other configs (likedomListeners) are processed ininitConfig.Verification
Fire.spec.mjs: Event bubbling and firing now work correctly.RealWorldUpdates.spec.mjs: ID matching for updates is now correct.SortZone.spec.mjs: VDOM lookups by ID now succeed.AutoId.spec.mjs: The original collision fix remains verified.All unit tests are passing.
Commit: 4d623c17b (#8468)
tobiu closed this issue on Jan 9, 2026, 4:12 PM
After implementing the stable VDOM ID fix (Issue #8465), several unit tests are failing. The failures are likely due to tests assuming auto-generated IDs (
neo-vnode-X) which are now being replaced by stable wrapper IDs (neo-component-X__wrapper), or real regressions.Failing Tests:
test/playwright/unit/draggable/container/SortZone.spec.mjstest/playwright/unit/manager/domEvent/Fire.spec.mjstest/playwright/unit/vdom/RealWorldUpdates.spec.mjsGoal: Investigate and fix the failing tests. If the failures are due to the test assumptions, update the tests. If they reveal a regression, fix the code.