Skip to content

test(solid): audit skipped declarations and restore meaningful coverage - #161

Merged
elonehoo merged 2 commits into
mainfrom
fix/restore-skipped-component-coverage
Oct 21, 2026
Merged

elonehoo merged 2 commits into
mainfrom
fix/restore-skipped-component-coverage

Conversation

@elonehoo

@elonehoo elonehoo commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Summary

Closes #156.

Audit all eight skipped declarations against active Solid and related framework coverage, without treating test counts as product defects. No runtime code changes.

  • Restore Menu parts and Signature public exports with correct fixture/namespace assumptions.
  • Assert OTP required on the aggregate native form input, including editing and reactive Field updates.
  • Correct Popover's open precondition and NumberInput's uncontrolled fixture; cover both fraction limits.
  • Restore single Select selection with native value/reselection assertions; await unmount and verify remount; register InitialValue at suite scope.
  • Remove the unsupported FileUpload readonly-on-button expectation, explicitly document the unsupported contract rather than imply equivalent coverage.
  • Record the complete eight-item coverage map in docs/solid-skipped-test-audit.md.

Verification

  • Solid tsc --noEmit, scoped ESLint and git diff --check: passed.
  • Independent review: no blocking findings.
  • Supplemental happy-dom: corrected Popover/NumberInput/Select suites passed (112 cases); strengthened Select suite passed separately (48 cases); targeted OTP/public exports and isolated Menu parts passed.
  • Diagnostic original Popover and NumberInput assertions both fail as predicted (visible title before Escape; fixed controlled value remains 1.00).
  • Local browser execution blocked by IPC/socket restrictions. Happy-dom is not the browser gate: an unchanged Signature focus test fails there and Menu's browser helper requires the browser pool. Normal CI browser/aggregate checks remain required before Ready.

No Node policy, npm publishing, tags, or manual deployment changes.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Note

Low Risk
Test-only and documentation changes with no production code paths modified; remaining risk is flaky CI timing on Popover Escape across Node versions, which the listener-based wait addresses.

Overview
Closes #156 by clearing Solid test debt from eight previously skipped declarations—no runtime or component behavior changes. A new docs/solid-skipped-test-audit.md maps each skip to existing coverage, the fix, and CI verification notes.

Restored or corrected tests: Menu anatomy parts open the parent menu before asserting nested parts. NumberInput fraction-digit coverage uses defaultValue and asserts max rounding and min padding on blur. OtpInput Field required targets the aggregate hidden input (with valueMissing, assembled value, and reactive removal). Popover Escape waits for a visible dialog and deferred keydown listeners via trackDocumentListeners, then asserts dismissal and listener cleanup. Select single-selection adds native <select> value, aria-selected, and reselection; lazy mount/unmount awaits removal and remount; InitialValue is registered at suite scope. Signature export checks exclude internal SegmentPath and include Context, HiddenInput, and RootProvider.

Removed invalid expectation: FileUpload Field readOnly on the trigger button is dropped with an explicit comment that upload has no readonly contract.

Reviewed by Cursor Bugbot for commit 858d30f. Bugbot is set up for automated code reviews on this repo. Configure here.

@vercel

vercel Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
destyler-ui Ready Ready Preview Oct 21, 2026 10:51am UTC
destyler-ui-dev Ready Ready Preview Oct 21, 2026 10:51am UTC

Copy link
Copy Markdown
Member Author

CI follow-up: Node 24 passed the full browser suite; Node 22 exposed one restored Popover Escape test race. The core registers dismissal listeners with defer: true (animation-frame scheduling), so visible content alone was not a sufficient input-readiness condition. 858d30f waits for the actual document keydown listener via the existing lifecycle tracker before pressing Escape, then verifies both dismissal and listener cleanup. No fixed sleep, retries, skipped assertion, or runtime behavior change. Local Popover diagnostic: 32 passed; typecheck/lint passed. Waiting for the new head's normal CI.

@elonehoo
elonehoo marked this pull request as ready for review October 21, 2026 11:00

Copy link
Copy Markdown
Member Author

Final-head verification for 858d30f: Node 22.22.3 and Node 24 CI passed, including the actual Chromium suite. Node 22 also completed all four framework aggregate package checks, exact-core consumers, docs checks and Storybook builds. Packed consumer, accessibility smoke, lint and both Vercel checks passed. The Popover readiness fix received independent review with no blocking findings. Marked Ready; final review/comment recheck remains separate from green checks.

@elonehoo
elonehoo merged commit b46f5a9 into main Oct 21, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Audit eight skipped Solid test declarations and map missing coverage

1 participant