|
| 1 | +# PR_26161_020 Controls Row Capture Cleanup Report |
| 2 | + |
| 3 | +## Branch Validation |
| 4 | +- Current branch: `main` |
| 5 | +- Expected branch: `main` |
| 6 | +- Result: PASS |
| 7 | + |
| 8 | +## Summary |
| 9 | +- Removed the separate Controls/Input Mapping Capture accordion. |
| 10 | +- Moved selected Action/Object context into the right side of the mappings table footer next to Add Mapping and Reset Mappings. |
| 11 | +- Replaced the row Input free-text editor with row-level capture buttons: |
| 12 | + - Capture Keyboard |
| 13 | + - Capture Mouse |
| 14 | + - Capture Gamepad |
| 15 | +- Kept Input display clickable without deleting mappings. |
| 16 | +- Kept deletion scoped to the row Trash action. |
| 17 | +- Preserved table-first add/edit/cancel, Mapping JSON, Devices, Status, controller profiles, workspace return, and shared DB/mock-adapter persistence. |
| 18 | + |
| 19 | +## Impacted Lane |
| 20 | +- runtime |
| 21 | +- recovery/UAT |
| 22 | + |
| 23 | +## Playwright Impacted |
| 24 | +- Yes |
| 25 | + |
| 26 | +## Testing Performed |
| 27 | +- `node --check toolbox/input-mapping-v2/input-mapping-v2.js` - PASS |
| 28 | +- `node --check tests/playwright/tools/InputMappingV2Tool.spec.mjs` - PASS |
| 29 | +- `rg --pcre2 -n "<style|style=|<script(?![^>]*\\bsrc=)|on(click|change|input|submit|keydown|keyup|pointerdown|mousedown|mouseup)=" toolbox/input-mapping-v2/index.html toolbox/controls/index.html` - PASS, no inline CSS/JS/event handlers found |
| 30 | +- `git diff --check` - PASS |
| 31 | +- `npx playwright test tests/playwright/tools/InputMappingV2Tool.spec.mjs --workers=1 --reporter=line` - PASS, 5 passed |
| 32 | + |
| 33 | +## Playwright Behavior Covered |
| 34 | +- Selected Action/Object display appears in the mappings table footer and updates from the Actions panel. |
| 35 | +- Capture accordion is absent. |
| 36 | +- Row-level Capture Keyboard, Capture Mouse, and Capture Gamepad buttons appear during row add/edit. |
| 37 | +- Keyboard capture updates the active row input and persists after Save/reload. |
| 38 | +- Gamepad capture shows actionable WARN when no live gamepad value is available. |
| 39 | +- Gamepad capture can populate a row when a live gamepad value is supplied by the test harness. |
| 40 | +- Clicking the displayed Input token does not delete the row. |
| 41 | +- Trash is the only covered row deletion path. |
| 42 | +- Mapping JSON, Devices, Status, controller profiles, and compatibility route continue to render. |
| 43 | + |
| 44 | +## V8 Coverage |
| 45 | +- Report: `docs_build/dev/reports/playwright_v8_coverage_report.txt` |
| 46 | +- Changed runtime JS covered: `toolbox/input-mapping-v2/input-mapping-v2.js` |
| 47 | +- Coverage result: 92% function coverage, 105/114 functions |
| 48 | + |
| 49 | +## Manual Validation Steps |
| 50 | +1. Open `/toolbox/input-mapping-v2/index.html`. |
| 51 | +2. Confirm the left column shows Actions and Controller Profiles, with no Capture accordion. |
| 52 | +3. Confirm Add Mapping and Reset Mappings are on the left side of the table footer. |
| 53 | +4. Confirm Selected Action and Selected Object appear on the right side of the table footer. |
| 54 | +5. Click Add Mapping and confirm Add Mapping disables while the edit row is active. |
| 55 | +6. Click Capture Keyboard, press a key, save the row, reload, and confirm the mapping remains. |
| 56 | +7. Click the Input token and confirm the row remains. |
| 57 | +8. Click Trash and confirm the row is deleted. |
| 58 | + |
| 59 | +## Skipped Lanes |
| 60 | +- Full samples validation was skipped as required by the PR instructions; this change is limited to the Controls/Input Mapping toolbox UI and test coverage. |
| 61 | +- Full workspace contract lane was skipped because no Workspace V2 contract/runtime files changed; workspace return visibility is covered in the targeted Controls Playwright test. |
| 62 | + |
| 63 | +## Runtime Scope Confirmation |
| 64 | +- Controls remains Wireframe. |
| 65 | +- No production controller runtime was added. |
| 66 | +- No sample JSON alignment, auth behavior, production DB behavior, engine runtime behavior, or unrelated rewrites were added. |
| 67 | +- Controls mapping data remains persisted through the shared DB/mock adapter. |
0 commit comments