935 B
935 B
E2E testid contract (EventHubFrontAdmin)
Селекторы: data-testid + a11y (getByRole / getByLabel) где имя стабильно.
Naming
| Pattern | Example |
|---|---|
page-{name} |
page-login, page-users |
nav-{slug} |
nav-users (slug = path without /) |
{entity}-row-{id} |
user-row-{uuid} |
{entity}-detail |
user-detail |
{entity}-filter-{field} |
event-filter-status |
btn-{action} |
btn-login, btn-save, btn-delete-confirm |
dialog-{name} |
dialog-edit-user |
menu-user |
avatar dropdown |
palette-input |
command palette |
Helper in app: src/lib/testid.ts → testid(['user-row', id]).
Rules
- kebab-case only
- Dynamic id segment = real API entity id
- Prefer roles/labels for login email/password and primary submit when i18n fixed to
ruin mock suite - Do not decorate every layout div — only interaction anchors