1.5 KiB
1.5 KiB
E2E testid contract (EventHubFrontAdmin)
Селекторы: data-testid + a11y (getByRole / getByLabel) где имя стабильно.
Naming
| Pattern | Example |
|---|---|
page-{name} |
page-login, page-users, page-inbox-reports |
nav-{slug} |
nav-users |
row-{id} |
dense list / DataTable rows |
row-activate-{id} |
dense list main click target |
{entity}-row-{id} |
inbox-specific (report-row-*) |
btn-{action} |
btn-login, btn-save-profile |
dialog-{name} |
dialog-edit-user |
filter-{name} |
filter-users-search |
menu-user / lang-ru |
avatar dropdown |
Helper: src/lib/testid.ts.
Rules
- kebab-case; dynamic id = API entity id (or banned word)
- Prefer a11y for login fields
- Do not decorate decorative wrappers
Запуск
| Команда | Назначение |
|---|---|
npm run test:e2e |
mock-suite (CI / PR), API через Playwright route |
npm run test:e2e:ift |
IFT smoke (живой API), см. ниже |
IFT secrets (Gitea → Settings → Secrets)
| Secret | Обязателен | Назначение |
|---|---|---|
E2E_ADMIN_EMAIL |
да | логин smoke-админа на IFT |
E2E_ADMIN_PASSWORD |
да | пароль |
E2E_IFT_BASE_URL |
нет | default https://admin-ui.ift.eventhub.local |
Workflow e2e-ift.yml стартует после успешного Deploy IFT (admin).