Lens: data-testid sweep — cms-admin UI instrumentation (F80)#2
Merged
Conversation
- deploy-modal.tsx: backdrop, content container, deploy button, skip checkbox, close buttons, success link - generate-document-dialog.tsx: backdrop, content container, prompt textarea, cancel button, generate button, header close button - beam-progress-modal.tsx: backdrop, content container, minimize button, close button, done button - beam-import-modal.tsx: close button, done button, error close button - help-button.tsx: trigger button, close button, ISU buttons, learn more link, action links Following kebab-case naming convention (e.g. deploy-modal-deploy-button), placing testids as FIRST attribute before handlers. Targeted all interactive native DOM elements (buttons, inputs, links, clickable divs/spans). Lens testid-gaps reduced from 1029 → 874 (155 gaps closed). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…al backdrops/containers - general-settings-panel.tsx: save button - totp-panel.tsx: all 7 buttons (add app, verify, cancel enroll, disable trigger, disable, disable cancel, backup saved) - deploy/generate modals: backdrop and content container divs Lens testid-gaps being tracked. Following kebab-case convention, testids placed as FIRST attribute. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- dev-inspector.tsx: toggle button - deploy-wizard.tsx: back and next buttons Following kebab-case naming convention, testids as FIRST attribute before handlers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- map-leaflet.tsx: map container div Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…els (wave 2 stragglers)
…editor.tsx Complete mechanical sweep adding testid attributes to all interactive elements: - Toolbar buttons: formatting, media insertion, zoom, tools - Modals and dialogs: link popup, video dialog, block/interactive/snippet/SVG pickers - Media browser controls: image, audio, file inputs and search/filter - Picker items with dynamic id suffixes (block-picker-item-<slug>, etc.) - Form inputs and submit buttons across all interactive sections - Pagination and navigation buttons - Inline confirm patterns for delete operations - Proofread editor controls (accept/reject/navigate) All testids placed as first attribute per Lens convention. Zero gaps remaining in rich-text-editor.tsx. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…fication Mechanical testid sweep closing all gaps in DocumentEditor and supporting components (ConfirmDialog, RichtextCollapsible, CreateTranslationDialog, ScheduleButton, RevisionPanel, PropertiesPanel, TranslationGroupSection, and field-level interactions). Attributes placed first per convention. 33 gaps closed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ettings, home.html + remaining pages
… (sites, gallery, field-editor, chat, schema, etc.)
…g; drop redundant button testid passthrough)
Adds the Lens capture catalog at repo root: 26 surfaces (4 pixel-baseline: auth pages + command; 22 no_diff value-assert: live-data /admin/* + settings/ account), element-mode anchored on per-page [data-testid="<page>-root"]. Adds matching <page>-root testids to each surface container (canonical element-mode pattern — excludes drift-chrome from baselines). Workspace surfaces use the fixed F146 slug /admin/lens-fixture-site/* for stable URLs. auth = storageState (LENS_STORAGE_STATE) — the storageState file generation (admin-role mint pattern) is pending Christian's decision and is a capture-time concern, not a manifest concern. Browser-verified: login-root renders as a viewport-covering anchor. Typecheck clean (0 new errors).
…or no_diff
- examples/lens-fixture/: deterministic local fixture site (posts + pages
collections, 2 seed posts) registered locally as slug 'lens-fixture-site'
(org 'lens') so the 22 workspace surfaces resolve + render predictably.
- manifest auth → statePath ./.lens/storage-state.json (gitignored, holds a
signed cms-session cookie for a local-only seeded admin lens-admin@cms.test).
- no_diff surfaces: waitFor → 2500ms settle (selector stays *-root) so captures
don't smoke-pass on the loading/splash state (per cardmem's fysiodk finding).
- .lens/ gitignored.
Local-only (not committed, on this Mac's dev store): lens-admin user in
~/.webhouse/cms-admin/_data/users.json + lens-fixture-site registry entry +
.lens/storage-state.json. Verified: auth/me returns lens-admin (admin);
/admin/lens-fixture-site/{,/content/posts,/media,/settings} all 200.
…re feedback) - admin-setup: /admin/setup redirects once the CMS is set up, so setup-root never exists → drop the surface (capture in a fresh-no-admin state later if needed). Manifest now 25 surfaces (3 pixel + 22 no_diff), all captured green. - dashboard 'assert' held a selector string in a field that expects a JS body (SyntaxError). selector+waitFor already verify the anchor → remove it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Full
data-testidsweep across cms-admin so the admin UI is verifiable by Lens (visual testing). Completes the F80 / Lens-readiness foundation.Result
/lens/testid-gaps).widget.js/route.ts(7),mobile/open/route.ts,email-test/route.ts,ai/generate/route.tslib/email.ts(2),lib/agent-runner.ts,public/templates/map-interactive.html<a>inmap-leaflet.tsxtscerrors are all pre-existing:@webhouse/cms-mcp-client/serverworkspace-dist not built locally +webhook-dispatch.test.tsMock types).Convention
Per
TESTID-CONVENTION.md(F086): kebab-case<surface>-<element>-<purpose>, placed as the first attribute beforeonClick/onChange(required by the scanner). Native DOM elements only — PascalCase React components excluded. Attribute-only additions, no logic changes.How
Authored by the cms-core session, executed via parallel Haiku sub-agents over file chunks (the work is mechanical but voluminous), with the daemon scanner driving each file to 0 and a final
tscpass.Safety
Notes for review
lens.manifest.json+ the coordinated fleet-relaunch to load cardmem-lens MCP, thenlens_capture/lens_verifybaselines.🤖 Generated with Claude Code