LearnNewsExamplesServices
Frontmatter
id8607
titleAdvanced Fragment Lifecycle Testing (Moves & Nesting)
stateClosed
labels
aitestingcore
assigneestobiu
createdAtJan 13, 2026, 5:37 PM
updatedAtJan 13, 2026, 8:42 PM
githubUrlhttps://github.com/neomjs/neo/issues/8607
authortobiu
commentsCount2
parentIssue8601
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJan 13, 2026, 8:42 PM

Advanced Fragment Lifecycle Testing (Moves & Nesting)

tobiu
tobiu commented on Jan 13, 2026, 5:37 PM

Extending the coverage of #8606. Verify complex lifecycle scenarios for Neo.container.Fragment:

  1. Move In: Move a component from a Container into a child Fragment.
  2. Move Out: Move a component from a Fragment into its parent Container.
  3. Cross-Fragment Move: Move a component from Fragment A to Fragment B (siblings).
  4. Nested Moves: Move a component deeper into a nested Fragment hierarchy.
  5. Renderer Parity: Ensure these work identically in DomApiRenderer and StringBasedRenderer (via Unit tests) and visually in Browser (via Component tests).

This will be a sub-issue of Epic #8601.

tobiu
tobiu Jan 13, 2026, 7:13 PM

Input from Gemini 3 Pro:

✦ Verified VDOM delta generation for Fragment move operations via new unit tests (test/playwright/unit/vdom/FragmentMoves.spec.mjs).

Results:

  1. Move In: Correctly targets Fragment ID as parent with relative index.
  2. Move Out: Correctly targets physical Container ID with physical index.
  3. Cross-Fragment: Correctly moves between logical Fragment parents.
  4. Nested Moves: Correctly handles moves into deeper Fragment levels.

The Neo.vdom.Helper logic produces deltas that align with the expected DeltaUpdates handling for fragment anchors.

tobiu
tobiu Jan 13, 2026, 8:41 PM

Input from Gemini 3 Pro:

✦ Verified comprehensive Fragment lifecycle (Moves, Nested Moves, Cross-Fragment) via test/playwright/component/container/FragmentLifecycle.spec.mjs. All underlying issues in DeltaUpdates (Fragment support, move logic) and App.mjs (moveComponent atomicity) have been resolved. E2E tests pass.