Files
EventHubFrontAdmin/e2e/TESTIDS.md
T
aleksey 840f06e68e
CI / test (push) Successful in 2m21s
CI / push-image (push) Successful in 4m7s
CI / ci-done (push) Successful in 0s
feat(ci): последовательный deploy IFT -> E2E -> stage -> E2E.
Stage деплоится только после полного UI-сьюта на IFT; после stage — E2E на stage (ift-ui/stage-ui + smoke).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:31:22 +03:00

47 lines
1.9 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: полный UI-сьют на живом SPA + smoke API |
| `npm run test:e2e:stage` | stage: полный UI-сьют на живом SPA + smoke API |
### IFT / stage учётки
Источник истины — env стенда (`EventHubDevOps/ift/.env`, `EventHubDevOps/stage/.env` → на хосте `/opt/eventhub-{ift,stage}/.env`):
| Переменная | Назначение |
|------------|------------|
| `SMOKE_ADMIN_EMAIL` / `SMOKE_ADMIN_PASSWORD` | предпочтительно для smoke/E2E |
| `ADMIN_SUPER_EMAIL` / `ADMIN_SUPER_PASSWORD` | fallback, если `SMOKE_ADMIN_*` пустые |
Локально: `set -a && source /path/to/ift/.env && set +a && npm run test:e2e:ift`.
Workflow `e2e-ift.yml` / `e2e-stage.yml` читают те же ключи по SSH с `/opt/eventhub-{ift,stage}/.env`. Опц. secrets `E2E_IFT_BASE_URL`, `E2E_STAGE_BASE_URL`.