Skip to content

test: cover navigation browser contracts - #86

Merged
Banegasn merged 2 commits into
mainfrom
codex/issue-12-cross-browser
Jul 29, 2026
Merged

test: cover navigation browser contracts#86
Banegasn merged 2 commits into
mainfrom
codex/issue-12-cross-browser

Conversation

@Banegasn

@Banegasn Banegasn commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

Partially addresses #12.

This is the first focused browser-contract batch. It deliberately covers only the public navigation family:

  • @banegasn/m3-navigation-bar
  • @banegasn/m3-navigation-rail

It adds reusable Lit browser-contract helpers; deterministic layout, event, slot, accessibility, reconnect-cleanup coverage; and an Istanbul browser-coverage ratchet. The two packages run in Chromium, Firefox, and WebKit and are ratcheted at 100% statements, branches, functions, and lines. CI prints the summaries without retaining coverage artifacts.

Follow-up plan

Continue #12 in focused public component-family batches (for example, button/chip/badge or input controls), adding a package to the ratchet only after all of that package production source is exercised in the three-browser matrix. Do not treat the remaining packages that still use the explicit temporary no-test status as covered.

Validation

  • pnpm lint
  • pnpm typecheck
  • pnpm --filter @banegasn/m3-navigation-bar test:coverage
  • pnpm --filter @banegasn/m3-navigation-rail test:coverage
  • pnpm tokens:check
  • pnpm build
  • pnpm audit:prod
  • pnpm smoke:packages
  • pnpm smoke:svelte-vite
  • pnpm verify:package-licenses

pnpm test is otherwise clean for this batch but currently fails on the pre-existing WebKit-only m3-menu test synchronously hides and escapes the menu when a real Tab key moves focus: WebKit leaves document.activeElement on body instead of the expected next button. This PR does not modify the already-merged menu contract.

@Banegasn

Copy link
Copy Markdown
Owner Author

Acceptance review found two P1 blockers:

  1. This navigation-only batch must not auto-close [P1] Build a cross-browser component contract test matrix and coverage baseline #12, whose repository-wide package coverage criteria remain incomplete. Replace Fixes #12 with Partially addresses #12 (or equivalent) and retain the staged follow-up plan.
  2. Add explicit event-contract assertions for bubbles, composed, and cancelable (including rail item-click); the issue requires all four public event flags and current tests omit cancelability.

Implementation has been returned for these focused fixes.

@Banegasn
Banegasn force-pushed the codex/issue-12-cross-browser branch from 09f7614 to f42918c Compare July 29, 2026 16:43
@Banegasn
Banegasn merged commit 9f7b145 into main Jul 29, 2026
1 of 2 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.

1 participant