test(driver): close the declared-vs-applied gaps; add __stats + a GridBoard leak-soak gate#263
Merged
Conversation
…dBoard leak-soak gate serializeEvent's load-bearing fields (targetValue/targetChecked/ isSelfTarget/key/modifier flags), the setProperty innerHTML refusal, destroyNode's listener detach + numeric handle-prefix parse, and the select value-before-options application order now all have driver-layer tests — each was observable only below the patch stream, where the .style() bug class lives. The destroyNode test's stale 'drops the map entry only' comment described pre-fix behavior. New window.swiflow.__stats test hook (nodes/listeners/mountedRoots map sizes): the driver's retention was previously invisible to soaks. The GridBoard spec gains a leak-soak test — 8s of animation-rate playback must leave the maps flat, the regression net for the memoKey-handler and animateExit leak classes. New autocomplete.spec.ts (swiflowui config): the kit's most imperative surface (showPopover/hidePopover/scrollIntoView via refs) had zero honest-layer coverage — typing opens :popover-open, Escape closes, ArrowDown keeps the active option in the scrollport, click-to-select fills and closes. js-driver: 103 tests, 0 fail. swiflowui e2e: 30 passed locally (incl. the 3 new). gridboard e2e: 2 passed locally. Whole-package swift test: 1904 green. EmbeddedDriver + example copies regenerated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
📦 Bundle size
✅ Within budget (≤5% growth allowed). Baseline: Swift 6.3, WASM SDK 6.3-RELEASE, measured 2026-06-18. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Audit backlog B11 (Part-6 Mediums): the remaining "declared vs applied" holes, plus the leak-class regression net.
js-driver test batch (103 tests, 0 fail):
serializeEventfield fidelity:targetValue,targetChecked,isSelfTarget(bubbled vs self — the backdrop-dismiss distinction),key+ all four modifier flags. These power every binding and keyboard shortcut and had zero driver-layer assertions.setPropertyinnerHTML refusal: the XSS defence-in-depth gate now has a test (throws, batch reportsfalse, no markup lands).destroyNode: listener actually detaches while the node is still in the DOM, and the numeric handle-prefix parse survives the 2-vs-12 collision the code specifically guards. The test's stale "drops the map entry only" comment described pre-fix behavior.valueproperty applied before options loses to the first option; theselectedattribute (the framework's fix mechanism) wins regardless of order.window.swiflow.__stats(new test hook, explicitly not API): livenodes/listeners/mountedRootsmap sizes — the driver's retention was previously invisible to soaks.GridBoard leak-soak e2e: 8 seconds of animation-rate playback must leave the driver maps flat — the regression net for both shipped leak classes (memoKey handlers, animateExit listeners). Runs in the CI gridboard leg #258 added.
autocomplete.spec.ts(swiflowui config): first honest-layer coverage for the kit's most imperative component — typing opens the listbox via:popover-open, Escape closes, ArrowDown keeps the active option inside the scrollport (the ref-drivenscrollIntoView), click-to-select fills the input and closes. Registered in the swiflowuitestMatchAND the default config'stestIgnore(the #258 regression class).Verification: js-driver 103/103; swiflowui e2e 30 passed locally (incl. the 3 new); gridboard e2e 2 passed locally; whole-package
swift test1904 green;EmbeddedDriver.swift+ 22 example copies regenerated.🤖 Generated with Claude Code