Frontmatter
| id | 9021 |
| title | Create Playwright Unit Tests for Grid-Store Interactions |
| state | Closed |
| labels | aitestingperformance |
| assignees | [] |
| createdAt | Feb 7, 2026, 1:35 AM |
| updatedAt | Feb 7, 2026, 1:48 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9021 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 7, 2026, 1:48 AM |
Create Playwright Unit Tests for Grid-Store Interactions

tobiu
Feb 7, 2026, 1:44 AM
Input from Gemini 3 Pro:
✦ I have implemented and verified the Playwright unit test suite for Grid & Store Interactions (
test/playwright/unit/grid/StoreInteractions.spec.mjs).Verification Results:
- Insert / Remove: Confirmed strict recycling. Adding/removing items shifts content in existing rows with ZERO structural DOM deltas (no inserts/removes of rows).
- Sort: Verified sorting updates content in-place without moving physical row elements.
- Filter: Confirmed that filtering hides unused rows (via
display: noneor similar) instead of removing them from the DOM, maintaining the Fixed-DOM-Order architecture.- Delta Efficiency: Validated that the number of VDOM updates is minimal and bounded (roughly proportional to visible cells), ensuring O(1) scalability for data mutations.
This suite acts as a regression guard for ensuring Store operations leverage the Grid's high-performance architecture.

tobiu
Feb 7, 2026, 1:48 AM
Input from Gemini 3 Pro:
✦ I have enhanced the unit tests with direct VDOM/VNode assertions to verify the live DOM state matches the logical updates.
Enhancements:
- Runtime Insert: Explicitly verifies that the VDOM cell content and VNode
innerHTMLat index 0 contain "New Row".- Runtime Remove: Confirms that the VDOM/VNode at index 0 updates to display the shifted record ("Row 1").
- Runtime Sort: Asserts that the VDOM/VNode reflects the new sort order ("Row 19" at top).
- Runtime Filter: Verifies that visible rows have
style.display: null(visible) and unused/pooled rows havestyle.display: 'none'in both VDOM and VNode, confirming the "hide-don't-remove" strategy.These assertions guarantee that the visual representation (what the user sees) is correctly synchronized with the efficient internal state changes.
tobiu closed this issue on Feb 7, 2026, 1:48 AM
Create Playwright Unit Tests for Grid-Store Interactions
Objective: Create a new Playwright unit test suite (
test/playwright/unit/grid/StoreInteractions.spec.mjs) to verify the interaction between theGridContainer(specificallyGridBody) and itsStoreduring runtime data mutations.Scope: The tests must verify that the Fixed-DOM-Order architecture is maintained during dynamic data changes. We expect minimal deltas (content updates only, no row reordering/insertion/removal) for operations that fit within the existing row pool.
Key Scenarios to Test:
Runtime Insert (
store.add/store.insert):moveNode,insertNode) for the rows themselves. Only content (innerHTML,text) andstyle(transform) updates.Runtime Remove (
store.remove):Runtime Sort (
store.sort):Runtime Filter (
store.filter):display: noneor empty content), NOT removed from DOM.Technical Details:
captureDeltashelper (similar toPooling.spec.mjs) to inspect VDOM actions.Neo.config.useVdomWorkerisfalseto test logic synchronously.ResizeObserverandDomAccessas needed.Why: To ensure that standard store operations do not break the high-performance rendering strategy of the new Grid implementation.