Skip to content

Desktop testing: migrate stories and split CI input lanes - #4466

Open
Jason Morse (JasonVMo) wants to merge 5 commits into
mainfrom
user/jasonvmo/input-selection-2
Open

Jason Morse (JasonVMo) wants to merge 5 commits into
mainfrom
user/jasonvmo/input-selection-2

Conversation

@JasonVMo

Copy link
Copy Markdown
Contributor

Platforms Impacted

  • iOS
  • macOS
  • win32 (Office)
  • windows
  • android

Description of changes

Phase 2, following the merged descriptor/selection infrastructure in #4464. The branch includes the latest main (8574d22ee) through merge commit d546ac30b; the PR diff contains only this follow-up.

  • Story migration: convert the remaining 88 callbacks across 19 component/primitive story files to desktopIt descriptors. One macOS-specific Button transport split produces 89 cases. Preserve assertions while moving capability/platform gates and known gaps out of callbacks; remove runtime skip calls and the internal requireDesktopFocus helper. Read-only cases retain derived both. The Win32 pressed-state quarantine (Components: Win32 Button does not report onPressOut after Space with an intervening key #4373) expires on 2027-01-31.
  • Win32 preview: carry the scrollable viewport and per-generation preview remount fixes from CI: require full Win32 Storybook accessibility and physical-input lanes #4431, with regression tests. Chrome preferences survive the remount. Srividya Ramaswamy is credited as a co-author.
  • CI lanes: run Windows and Win32 Storybook with --input accessible and physical input masked. Add a separate, unmasked Win32 --input physical pilot with distinct artifacts. No Storybook job is added to the aggregate PR check. macOS CI remains in compatibility mode. Physical-lane promotion remains governed by Infrastructure: Qualify and require native Storybook CI coverage #4349.
  • Regression protection and guidance: require descriptors throughout the component catalog contract, update the missing-capability expectation from callback skip to preflight unsupported, and update authoring/CI documentation, the app agent map, and patch changesets.

Session-level input enforcement and mechanism receipts remain phase 3. Static selection counts are not evidence of delivered input: Win32 selects 38 accessible cases and 83 physical cases, with one of the latter declared quarantined.

Verification

Passed on the main-integrated branch:

  • yarn install --immutable — passed.
  • yarn clean-lage-cache followed by yarn lage buildci — passed, 178 successful tasks, zero failed or cached tasks. Includes package builds, lint, tests, story typechecking, contract checks, repository formatting, and agent-instruction validation.
  • yarn change:check — passed with committed changesets.
  • yarn lage test-links — passed, 90 successful tasks.
  • git --no-pager diff --check origin/main...HEAD — passed.

From apps/storybook, all of the following passed after the merge:

  • macOS: yarn storybook manifest --macos; yarn storybook test --macos --list --input accessible; yarn storybook test --macos --list --input physical; yarn storybook bundle --macos.
  • Windows: yarn storybook manifest --windows; yarn storybook test --windows --list --input accessible; yarn storybook test --windows --list --input physical; yarn storybook bundle --windows.
  • Win32: yarn storybook manifest --win32; yarn storybook test --win32 --list --input accessible; yarn storybook test --win32 --list --input physical; yarn storybook bundle --win32.

Not run locally: native app smokes, physical-input runs, or assistive-technology qualification. Win32 native execution requires Windows. JavaScript tests and bundles do not qualify the native viewport behavior or hosted input delivery; the new CI lanes still need execution evidence.

Before After
Story callbacks feature-check and skip at runtime; hosted Storybook jobs run mixed cohorts. The Win32 preview can retain scroll state between tests. Descriptors select cases before execution, accessible and physical CI lanes are separate, and each Win32 test gets a fresh scrollable preview while retaining chrome preferences.

Pull request checklist

This PR has considered (when applicable):

  • Automated Tests
  • Documentation and examples
  • Keyboard Accessibility
  • Voiceover
  • Internationalization and Right-to-left Layouts

Native keyboard, VoiceOver, and right-to-left UI checks were not run locally; existing story assertions are preserved.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Finish part 1 of the input-lane work started in f5a90cd. Cases declare
how they run with desktopIt, and a run selects the cases that apply to its
input lane, platform and scope and accounts for everything it excludes.

desktop-driver
- Add pure case selection and click-mode resolution, and move the
  requirement preflight and click-mode helpers here.
- Add the authoring/input leaf export so config-loading code can import
  scope helpers from source without the authoring index.

desktop-test
- Report the lane: a lane run is incomplete when it has skipped or
  undeclared-unsupported results, an empty selection or nothing executed.
- Add the Jasmine adapter (desktop-test/jasmine) with desktopIt and
  desktopDescribe, plus config-level test scopes and --input.

storybook-desktop
- Add --input accessible|physical to storybook test, driver and smoke.
  The lane comes from the flag, DESKTOP_INPUT or the attached driver.
- Select cases before they run, resolve declared gaps, assess each
  cohort, and reject direct input calls in declared cases at extraction.
- Fail closed when an accessible lane attaches to a driver that does not
  mask keyboard, physical click and wheel input.

native-core and apps/E2E
- Migrate the native-core Callout and FocusZone tests and
  ButtonV1.spec.win.ts to desktopIt.

Update the package references and add patch changesets.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace remaining component story runtime skips with desktopIt requirements, platform scopes and declared gaps. Carry the Win32 preview fixes from #4431 and split accessible and advisory physical Storybook CI lanes without changing aggregate PR requirements.

Co-authored-by: Srividya Ramaswamy <sriramas@microsoft.com>

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Integrate merged phase 1 (#4464) and the package-version release without rewriting phase 2 history.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Bundle size report

Tree-shaken, minified production esbuild bundles with React and React Native runtimes externalized.

Scenario Modules-Mac (Δ) Modules-Win (Δ) Size-Mac (Δ) Size-Win (Δ)
components-button 79 (+1) 80 (+1) 72.78k (-842b) 72.71k (-842b)
components-catalog 228 (+1) 229 (+1) 228.46k (-855b) 228.38k (-855b)
design-themed-root 55 (+4) 56 (+4) 56.26k (+998b) 56.18k (+998b)
design-color-lib 6 (+0) 6 (+0) 6.27k (+0b) 6.27k (+0b)
design-theme-state-legacy-source 49 (+1) 50 (+1) 52.96k (-841b) 52.89k (-841b)
design-legacy-theme 42 (+0) 42 (+0) 39.11k (+0b) 42.91k (+0b)
design-legacy-theme-from-flex 58 (+4) 58 (+4) 60.70k (+824b) 64.51k (+822b)
design-fluent-light-theme 7 (+0) 7 (+0) 18.74k (+0b) 22.59k (+0b)
design-fluent-theme 35 (+0) 35 (+0) 27.46k (+4b) 31.25k (-1b)
design-fluent-hc-theme 32 (+0) 32 (+0) 27.34k (+0b) 31.13k (+0b)
design-flex-theme 29 (-4) 29 (-4) 14.30k (-9.07k) 14.29k (-9.07k)
design-flex-cool-theme 26 (New) 26 (New) 12.51k (New) 12.50k (New)
design-flex-warm-theme 26 (-7) 26 (-7) 12.28k (-11.15k) 12.27k (-11.15k)

The job is advisory: size changes are reported but do not fail the pull request. Bundle or analysis errors still fail.


View bundle-size workflow run

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