Frontmatter
| id | 9019 |
| title | Fix Playwright Teleportation Tests for Fixed-DOM-Order Grid |
| state | Closed |
| labels | aitestingregression |
| assignees | tobiu |
| createdAt | Feb 6, 2026, 7:14 PM |
| updatedAt | Feb 6, 2026, 7:51 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9019 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 6, 2026, 7:51 PM |
Fix Playwright Teleportation Tests for Fixed-DOM-Order Grid

tobiu
Feb 6, 2026, 7:51 PM
Input from Gemini 3 Pro:
✦ I have updated
test/playwright/unit/grid/Teleportation.spec.mjsto align with the new Fixed-DOM-Order architecture.Changes:
- Updated Expectations:
moveNodesexpectation set to0(was 3 or 8), confirming that rows are recycled in-place without moving in the DOM.insertNodesexpectation set to0(was 3), confirming full pool reuse.textUpdatesexpectation set to14(was 11), accounting for the recycling of previously "inserted" rows.- Robust Row Inspection:
- Refactored the test logic to identify rows by checking the component's
rowIndexproperty, rather than assumingcn[0]corresponds to the top logical row. This handles the visual wrapping inherent in the fixed-order strategy.- Async Synchronization:
- Added
await grid.timeout(50)after scrolling to allow child component updates (e.g., Button text) to fully settle before assertions, resolving race conditions in the test environment.- VDOM Inspection:
- Updated assertions to check
.textinstead of.htmlon button text nodes, matchingNeo.button.Baseimplementation.All tests are now passing. Code pushed to
dev.
tobiu assigned to @tobiu on Feb 6, 2026, 7:51 PM
tobiu closed this issue on Feb 6, 2026, 7:51 PM
Objective: Update
test/playwright/unit/grid/Teleportation.spec.mjsto align with the new "Fixed-DOM-Order" Row Pooling architecture. The current tests fail because they expect behaviors (DOM moves, direct VDOM structure access) that have been intentionally obsoleted by recent refactorings (#9012, #9017).Issue 1: Expectation Mismatch (Zero Moves)
expect(moveNodes.length).toBe(3)received0.moveNodeoperations for rows during scrolling.0move deltas for rows. Verify text updates count and adjust if necessary.Issue 2: VDOM Traversal Failure
TypeError: Cannot read properties of undefined (reading '1')when accessingfirstRenderedRow.cn[1].GridBodynow containsNeo.grid.Rowreferences (placeholders) in itsvdom.cn, not the full VDOM tree of the rows. The test tries to access cellcn[1]directly from the Body's VDOM, which is no longer valid.Neo.grid.Rowinstance from the Body's items (usinggetComponent).vdomproperty to inspect cells and content.Plan:
Teleportation.spec.mjsto assertmoveNodes.lengthis 0.Related: