|
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 15s
Harness Replays / detect-changes (pull_request) Successful in 15s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 11s
sop-checklist / na-declarations (pull_request) awaiting /sop-n/a declaration for: qa-review, security-review
CI / Detect changes (pull_request) Successful in 41s
sop-checklist / all-items-acked (pull_request) Successful in 18s
sop-tier-check / tier-check (pull_request) Successful in 17s
security-review / approved (pull_request) Failing after 19s
qa-review / approved (pull_request) Failing after 19s
E2E API Smoke Test / detect-changes (pull_request) Successful in 40s
gate-check-v3 / gate-check (pull_request) Successful in 21s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 41s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 42s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 37s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m17s
Harness Replays / Harness Replays (pull_request) Successful in 6s
CI / Platform (Go) (pull_request) Successful in 7s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 8s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 10s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 11s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8m58s
CI / Canvas (Next.js) (pull_request) Successful in 15m42s
CI / Canvas Deploy Reminder (pull_request) Successful in 6s
CI / all-required (pull_request) Successful in 4s
Root cause: handleKeyDown used querySelectorAll("> [role=radio]") to find
the next radio button after a key press. jsdom's selector parser throws
INDEX_SIZE_ERR on the child-combinator selector in test environments,
which @asamuzakjp/dom-selector surfaces as SyntaxError. The error
always fired after the last keyboard-navigation test in each describe
block (ArrowRight, ArrowLeft, ArrowDown, Home, End = 5 errors) and
was non-fatal to the test pass count (18/18 still passed).
Fix:
1. Replace querySelectorAll("> [role=radio]") with
Array.from(radiogroup.children).filter(el =>
el.tagName === "BUTTON" && el.getAttribute("role") === "radio"
) — avoids the child-combinator selector entirely.
2. Guard the focus call with isConnected check to survive React
StrictMode double-invocation of the handler during re-render.
3. Add bounds check (next < btns.length) before accessing btns[next].
Result: 18/18 pass, 0 errors (was 18/18 pass, 5 errors).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| e2e | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| components.json | ||
| Dockerfile | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| playwright.staging.config.ts | ||
| postcss.config.js | ||
| tsconfig.json | ||
| vitest.config.ts | ||