43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
# 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)`.
|